码迷,mamicode.com
首页 > 其他好文 > 详细

Keil V4.72升级到V5.1X之后

时间:2015-07-12 20:19:05      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

问题描述

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之后

标签:

原文地址:http://www.cnblogs.com/amanlikethis/p/4641390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!