艾尔思
2017-09-15
在STM32库中GPIO头文件中有这样的宏定义,意思是大概是为GPIO_TypeDef* GPIOx定义可选择项,但符合C语言语法吗?并且在什么地方将GPIOB转化为具体数值呢?
#define IS_GPIO_ALL_PERIPH(PERIPH) (((PERIPH) == GPIOA) || \
((PERIPH) == GPIOB) || \
((PERIPH) == GPIOC) || \
((PERIPH) == GPIOD) || \
((PERIPH) == GPIOE) || \
((PERIPH) == GPIOF) || \
((PERIPH) == GPIOG))
并且后面好象有以下语句是什么意思?
assert_param(IS_GPIO_ALL_PERIPH(GPIOx));最终我是想弄明白向void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
函数中写入第一个参数是个字符串"GPIOA",它怎么就 将其转化为数值了呢? GPIOx怎么和GPIOA联系上了,X只是个字符,又不是参数变量,象GPIO_Speed和 GPIO_Mode是采用枚举的方法列出的,GPIO-Pin是采用直接宏定义的方法
但上述的宏定义只是将PERIPH与GBIOA,GBIOB联系起来了,还没提及GPIOx
10积分
回答
悬赏完成
,48小时抢答者被选中的人可获得赏金