Keil V4.72升级到V5.1X之后
2015-07-12 19:31
316 查看
问题描述
Keil V4.72升级到V5.1x之后,原来编译通过的工程,出现了如下错误:
.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\STM32f10x.h(298): error: #67: expected a "}
原因分析
Keil V4.72版本的情况:在使用STM32的库文件的时候,我们在Device一栏中选择了器件,比如说STM32F103VET6,但是我们还需要在C/C++一栏的Preprocessor Symbols中添加宏STM32F10X_HD,这样编译才能通过。对应不同容量的芯片,这个宏也要对应的进行修改。
Keil V5.1x版本的情况:我们在Device一栏中选择了器件,比如说STM32F103VET6,那么我们在C/C++一栏的Preprocessor Symbols中是无需添加宏STM32F10X_HD的。因为软件会自动的根据不同容量的器件生成这样的宏。比如说我们的Device为STM32F103R8T6,软件自动会生成宏STM32F10X_MD,而无需用户添加。这当然是ARM公司和ST公司进行商量,然后决定这样处理,显然这对于用户来说使用更方便。
在我们软件升级之后,可能之前我们定义的宏和器件实际应该对应的宏不一致,就会出现上述错误。因为相当于对于一个编译变量,我们定义了两次。比如说器件为STM32F103VET6,我们的定义的宏为STM32F10X_MD,而软件自动又生成了一个宏STM32F10X_HD,这在编译的时候肯定会造成错误。
解决办法
将C/C++一栏的Preprocessor Symbols中的宏STM32F10X_(x)D删除,重新编译即可。
Keil V4.72升级到V5.1x之后,原来编译通过的工程,出现了如下错误:
.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\STM32f10x.h(298): error: #67: expected a "}
原因分析
Keil V4.72版本的情况:在使用STM32的库文件的时候,我们在Device一栏中选择了器件,比如说STM32F103VET6,但是我们还需要在C/C++一栏的Preprocessor Symbols中添加宏STM32F10X_HD,这样编译才能通过。对应不同容量的芯片,这个宏也要对应的进行修改。
Keil V5.1x版本的情况:我们在Device一栏中选择了器件,比如说STM32F103VET6,那么我们在C/C++一栏的Preprocessor Symbols中是无需添加宏STM32F10X_HD的。因为软件会自动的根据不同容量的器件生成这样的宏。比如说我们的Device为STM32F103R8T6,软件自动会生成宏STM32F10X_MD,而无需用户添加。这当然是ARM公司和ST公司进行商量,然后决定这样处理,显然这对于用户来说使用更方便。
在我们软件升级之后,可能之前我们定义的宏和器件实际应该对应的宏不一致,就会出现上述错误。因为相当于对于一个编译变量,我们定义了两次。比如说器件为STM32F103VET6,我们的定义的宏为STM32F10X_MD,而软件自动又生成了一个宏STM32F10X_HD,这在编译的时候肯定会造成错误。
解决办法
将C/C++一栏的Preprocessor Symbols中的宏STM32F10X_(x)D删除,重新编译即可。
相关文章推荐
- 使用libxml解析HTML -- Hpple
- cati安装
- PAT 数据结构 04-树5. File Transfer (25)
- Sublime Text2解决中文乱码
- 程序异常处理
- 数据结构学习系列之线性表(三)
- JavaBean
- json java/ javascript
- Populating Next Right Pointers in Each Node II
- BZOJ 1257 余数之和sum
- 希尔排序
- Nirvana now!连载1
- Material Design之CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar
- HDOJ 1229 还是A+B
- Material Design之CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar
- CSS3动画理解与应用
- apache spark
- 第二章:Java语言基础I 第24节IF综合练习
- git 学习笔记4-git提交代码
- 二维数组的小知识