这个问题是在编译STM32的程序时遇到的,这个错误的原因是对于变量的声明不能放在可执行语句后面,必须在主函数开头声明变量。在程序中声明一个变量时,需要在可执行语句之前声明,否则会出现以上错误。

例:

vu16 KeyPortState=0; 

 SystemInit();

KeyScanState_Typedef
KeyScanState=KeyScanState_0; //KeyScanState_Typedef 为作者自定义的结构体

GPIO_Configuration();

以上编译会出项错误,原因是KeyScanState_Typedef
KeyScanState=KeyScanState_0;

出现在SystemInit();之后。

正确的函数语句段是:

vu16 KeyPortState=0;

KeyScanState_Typedef KeyScanState=KeyScanState_0;

SystemInit();


GPIO_Configuration();

declaration may not appear after executable statement in block--转载的更多相关文章

  1. declaration may not appear after executable statement in block

    keil 编译时出现 declaration may not appear after executable statement in block,找到keil工程对应的函数 定义的地方出现在了赋值的 ...

  2. keil 赋值之后再声明变量提示错误error: #268: declaration may not appear after executable statement in block

    勾选 C99 Mode 即可 假如没有C99 Mode的选项,那么我们可以用大括号将代码括起来,这样编译也不会报错 if( (! bMemAddrAllowAccess(checkAddr) )) { ...

  3. ..\EEP\EEP.c(249): error: #268: declaration may not appear after executable statement in block

    主要原因:  ON_nWP;这个应该放在 unsigned char Delay; unsigned char ReData; 的后面. 修改成功.

  4. main.c(53): error: #268: declaration may not appear after executable statement in block

    这个问题是在编译STM32的程序时遇到的,这个错误的原因是对于变量的声明不能放在可执行语句后面,必须在主函数开头声明变量.在程序中声明一个变量时,需要在可执行语句之前声明,否则会出现以上错误.

  5. 移植mavlink到stm32详细教程,后面附快速移植方法

    一:准备材料: mavlink源码 stm32串口程序    1.mavlink源码:        a.进入mavlink官网(http://qgroundcontrol.org/mavlink/s ...

  6. 移植mavlink协议到STM32详细教程

    1准备材料, 首先准备一个带串口的stm32程序(这里选用整点原子的官方串口例程这里自己去找不讲)作者:恒久力行 QQ:624668529,然后去mavlink官网下载mavlink源码,这里重点讲解 ...

  7. keil出错总结

    错误一: ..\APP\app.c(51): error:  #268: declaration may not appear after executable statement in block ...

  8. STM32学习中出现的错误

    1.添加了多个文件后编译发现出现了无效的重复声明: 原因:文件(头文件)调用的时候重复调用, 解决办法:每个头文件写的时候包含以下代码: #ifndef   __STM32F10X_H   //头文件 ...

  9. DB2 for Z/os Statement prepare

    The PREPARE statement creates an executable SQL statement from a string form of the statement. The c ...

随机推荐

  1. Maven导入依赖慢解决办法

    新安装的Maven,下载jar包速度会很慢,因为官方的库在国外, 连上并下载速度很慢. 因为maven是支持镜像的,我们就可以本地maven目录下的的conf目录下的setting.xml文件中找到标 ...

  2. 【笔记】《Redis设计与实现》chapter15 复制

    15.1 旧版复制功能的实现 同步 命令传播 旧版复制功能的缺陷 15.3 新版复制功能的实现 Redis2.8开始,使用PSYNC命令替代SYNC命令来执行复制时的同步操作 PSYNC命令具有完整重 ...

  3. linux下Mysql 8.0.19 编译安装

    1 前言 linux下安装MySQL的方式有很多种,包括以仓库的方式安装(yum,apt,zypper),以包的方式安装(rpm,deb),以docker方式安装,从压缩包解压安装,从源码编译安装,这 ...

  4. 8. Centos 7 图像化界面

    Step 1:安装"X Window System" yum groupinstall "X Window System" 当出现 Complete!说明这里安 ...

  5. python进阶(16)深入了解GIL锁(最详细)

    前言 python的使用者都知道Cpython解释器有一个弊端,真正执行时同一时间只会有一个线程执行,这是由于设计者当初设计的一个缺陷,里面有个叫GIL锁的,但他到底是什么?我们只知道因为他导致pyt ...

  6. Python学习从入门到放弃?我不允许!!!

    嗨,大家好 这里是汐仔 很多人都说学习python学习python,打开书本,三分钟,从入门到放弃. 这怎么可以!!!大家能选择python的原因可能是看它既简单,好入门,现在俨然是语言中的一匹黑马. ...

  7. Leecode第二题:两数相加

    Leecode2 先看题目 : 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的 ...

  8. *arg和**kwarg的区别

    一.*args的使用方法 *args 用来将参数打包成tuple给函数体调用 例子一: def function(*args): print(args, type(args)) function(1) ...

  9. 基于FOC伺服电机驱动的Parallel Scara Robot的设计及实现

    上个学期做了一个BLDC的FOC驱动后,我便开始了基于此类电机驱动的机器人项目尝试.之前想做的是串联机械臂,奈何找不到合适的电机并且串联机械臂十分需要减速机,使得项目对于我来说(经济方面)很艰难,恰巧 ...

  10. ltrim的思考

    ltrim的思考 说明 string ltrim( string $str[, string $character_mask] ) 删除字符串开头的空白字符(或其他字符) 案例1 $test = &q ...