初级会员

- 积分
- 140
- 金钱
- 140
- 注册时间
- 2018-2-3
- 在线时间
- 17 小时
|
1金钱
起因我是想通过一个参数GPIOA 类型(GPIO_TypeDef *) 来确定RCC_APB2Periph_GPIOA
也就是说,通过一个GPIO_TypeDef* GPIOx参数,就可以确定时钟的RCC_APB2Periph,
所以就定义了一下宏定义
#define RCC_APB2Periph_GPIO(GPIOx) if(GPIOA == GPIOx) RCC_APB2Periph_GPIOA
执行函数是这样子的
void GPIO_Config(GPIO_TypeDef* GPIOx,uint8_t GPIO_Pin,GPIOSpeed_TypeDef GPIO_Speed,GPIOMode_TypeDef GPIO_Mode)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIO(GPIOx) ,ENABLE); //宏定义在这里使用
GPIO_InitStruct.GPIO_Mode = GPIO_Mode;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed;
GPIO_Init(GPIOx,&GPIO_InitStruct);
}
这样子会报错..\Drivers\GPIO\GPIO.c(21): error: #29: expected an expression
问题1:我的规格有错误吗?
问题2:可以用宏定义达到我的目的吗?怎么做?
|
|