stm32如何给引脚取名?

引脚名字比如"GPIOA,GPIO_Pin_1”,用的时候很麻烦,那给它定义一个“代号”应该怎么写呢?然后在需要由两个参数的函数里调用这个“代号”又需要怎么写?比如GPIO_ResetBits(),谢谢!

举个例子

#define GPIO_OFFSET (GPIOB-GPIOA)
//结合
#define GPIO_A1 (((uint32_t)(GPIOA-GPIO_BASE)/GPIO_OFFSET)<<16)|GPIO_Pin_1)
//拆分
GPIOA == ((GPIOA1>>16)*GPIO_OFFSET)+GPIO_BASE;
GPIO_Pin_1 == GPIO_A1 & 0xffff;

因为GPIOA和GPIO_Pin_1的值都是32位的,想更方便的话甚至可以这样:

#define GPIO_A1 ((((uint64_t)GPIOA)<<32)|GPIO_Pin_1)  //直接用无符号长整型,拆分时就非常方便

使用位带操作,实现51类似的GPIO控制功能, 具体实现思想,参考<<CM3权威指南>>第五章(87页~92页).

如果你只需要输出的很简单。
使用库配置好io模式后
使用下面的语句

#define LED0 PCout(13)    
#define LED1 PCout(14)    

如果需要同一个io输出和输入的
可以看我这张文章:https://blog.csdn.net/weixin_45915259/article/details/123878323