由於MDK5.0A沒有STM32F103程序錯誤 stm32f10x.h(298): error: #67: expected a "}"


轉自:http://blog.163.com/lby147612@126/blog/static/17041045220150130438428/

由於MDK4.72A沒有STM32F030,所以升級到了MDK5.0
我的程序在MDK4.72A下編譯正常沒有任何錯誤,升級軟件后程序都出現了同樣的問題,請大家幫我看看,這個是什么原因。

Build target '103RE_安卓_Print1'
compiling main.c...
.\Source\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h(298): error:  #67: expected a "}"
    ADC1_2_IRQn                 = 18,     /*!< ADC1 and ADC2 global Interrupt                       */
.\Source\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h(472): warning:  #12-D: parsing restarts here after previous syntax error
  } IRQn_Type;
Source\User\main.c: 1 warning, 1 error
解決方法如下:
方法1、在C/C++選項卡里,把STM3210X_HD從prepocessor symbol define 里面刪掉`(*∩_∩*)′ 


這么做的原因:在老版本的官方STM32F10X.H文件里,這句話不是這么寫的,若沒記錯的話,是 
...&&!defined(STM32F10X_HD) && ... 
原來是有括號的,不做標識符來處理,而新版的,如圖,直接說明了出來,那就沒有必要,可以根據C/C++知識自己去推斷; 

具體可以看搜“[STM32系列貼-初級]之STM32F10X工程建立詳細過程及問題解決”

 
方法2、原先的Keil::STM32F1xx_DFP安裝包是你直接從uVision4升級到uVision5后保留的,使用PackInstaller將原先的包1.0.2 Remove + Delete Pack,然后重新下載安裝Keil::STM32F1xx_DFP,版本應該是1.0.0,問題解決,庫不兼容
方法2沒試,不知是否可行!!
 
選擇芯片后就不需要在option->c/c++中再定義類似STM32F103_HD的東西了

因為選擇芯片時已經加進去了。而且當你的定義和你選擇的芯片不同時,會報錯:
..\..\Libraries\CMSIS\stm32f10x.h(298): error: #67: expected a "}"
 ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM