想问下为什么我把第一行和第二行换了个位置就会出现很多报错?
时间:10-02
整理:3721RD
点击:
想问下为什么我把第一行和第二行换了个位置就会出现很多报错?
int main(void)
{GPIO_InitTypeDef GPIO_InitStructure; 第一行
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA,ENABLE); 第二行
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
while(1)
{if (GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)==0) GPIO_WriteBit(GPIOA,GPIO_Pin_7, (BitAction)( (1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_7)) ) ) ; }
}
int main(void)
{GPIO_InitTypeDef GPIO_InitStructure; 第一行
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA,ENABLE); 第二行
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
while(1)
{if (GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)==0) GPIO_WriteBit(GPIOA,GPIO_Pin_7, (BitAction)( (1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_7)) ) ) ; }
}
这是儿科问题,也是 你使用的软件设置的规则
函数的数据类型定义要放到第一行,至少keil和IAR编译器是这样的。GPIO_InitTypeDef GPIO_InitStructure; 是定义了一个GPIO_InitTypeDef类型的结构体
你说的这个问题在比较早版本的额keil中会出现,比较新的keil中并不会出现这个问题。我的版本是4.70,并没有这个问题