微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 记录学习STM32的问题,及办法

记录学习STM32的问题,及办法

时间:10-02 整理:3721RD 点击:
(转载):在网上找到别人的解决办法
使用MDK调试的时候,出现一下错误:
error: #268: declaration may not appear after executablestatement
查询后发现问题:
变量的声明,不能放在可执行语句的后面,必须在主函数开头声明变量!
在程序中申明一个变量时,会出现以上错误。
出现编译错误的函数如下:
u16 F;
        u8  data='A';
        RCC_Configuration();
        GPIO_Configuration();
        USART_InitTypeDef USART_InitStructure;
        USART_InitStructure.USART_BaudRate=9600;
        USART_InitStructure.USART_Mode=USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_1;
        USART_Init(USART1,&USART_InitStructure);
        USART_Cmd(USART1,ENABLE);
        for(F=0;F<20;F++)
        {
                USART1->DR = data;
                data++;
                while((USART1->SR & (1<<6))==0) ;
        }
改正后,编译OK的函数如下:
u16 F;
        u8  data='A';
        USART_InitTypeDef USART_InitStructure;
        RCC_Configuration();
        GPIO_Configuration();
        USART_InitStructure.USART_BaudRate=9600;
        USART_InitStructure.USART_Mode=USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_1;
        USART_Init(USART1,&USART_InitStructure);
        USART_Cmd(USART1,ENABLE);
        for(F=0;F<20;F++)
        {
                USART1->DR = data;
                data++;
                while((USART1->SR & (1<<6))==0) ;
        }
}
相互对比,可以很快发现问题的出处,改正后,重新编译,编译OK!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top