久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

專欄中心

EEPW首頁 > 專欄 > 關于stm32 keil編譯報錯:error: #256

關于stm32 keil編譯報錯:error: #256

發布人:電子禪石 時間:2019-11-11 來源:工程師 發布文章

... /Keil/ARM/INC/ST/STM32F10x/stm32f10x_type.h(23): error: #256: invalid redeclaration of type name "s32" (declared at line 470 of " ... /stm32f10x.h")”

或者

.. \CMSIS\core_cm3.h(264): warning:  #47-D: incompatible redefinition of macro "SCS_BASE" (declared at line 687 of " C: \Keil\ARM\INC\ST\STM32F10x\stm32f10x_map.h")

之類的報錯,這里以第一種報錯為例說明一下,第二種也大同小異

這個問題一般出現在移動庫,或者將兩個程序合并的時候報錯

原因是舊版的庫與新版的庫發生沖突了,沖突的原因是舊版和新版都定義了同一個東西,比如“s32”,于是就會發生重定義的報錯

解決這個問題的方法其實也不難,因為編寫程序的時候有一個防止重定義的宏,在新版的庫里面添加這樣的一個宏就可以消除大部分的錯誤了

我們先找到從定義的地方,雙擊錯誤跟蹤到報錯的地方我們可以看到這里就是type定義的地方,看到上面有一個“#ifndef __STM32F10x_TYPE_H”,這個就是舊版的宏,只要將這個宏在新版的相應位置定義一下就好

image.png

到新版的庫文件中,注意要消除只讀的設置,從錯誤來看,是“s32”發生了重定義,那么就是說,新版的庫應該也是有“s32”的定義,于是用搜索功能,找到“s32”定義的地方

image.png

1573709588909281.png1573709604934757.png

然后在這個定義的上方補充定義這個宏就可以解決一部分的問題了,添加這樣一段

#ifndef __STM32F10x_TYPE_H//補充定義舊版的宏

#define __STM32F10x_TYPE_H

#endif

1573709643255119.png

#47-D: incompatible redefinition of macro "SCS_BASE"  的錯誤解決方法也差不多,補充定義舊版宏即可解決大部分問題,這次是在core_cm3.c文件中,注意解鎖

1573709667557789.png

*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

關鍵詞:

相關推薦

Gartner預測到2027年,跨境GenAI濫用引起的AI數據泄露比例將達到40%

貿澤開售采用先進AI實現環境檢測的Bosch BME690空氣質量傳感器

意法半導體新推出的NFC讀取器芯片和全套模塊化開發工具加快非接產品設計

Arm推出GitHub Copilot新擴展程序,助力快速遷移至Arm架構服務器

歐度圓柱型插拔自鎖連接器

視頻 2012-05-15

歐盟日本巨額補貼半導體企業:英飛凌、臺積電成焦點

是德科技將在2025年世界移動通信大會上展示無線創新技術

P89LPC924 925 Flash單片機使用指南-02

電子測量儀器產業和技術發展趨勢

視頻 2012-05-15

從閃存到MRAM:滿足現代FPGA配置的需求

光端機在軍工領域的應用和發展趨勢

視頻 2012-05-15

P89LPC920 921 922 Flash單片機使用指南

P89LPC924 925 Flash單片機數據手冊-03 (英)

優良的設計、卓越的鏈接

視頻 2012-05-15

Microchip擴展maXTouch M1系列器件,支持汽車大尺寸、曲面及異形顯示屏

在低功耗MCU上實現人工智能和機器學習

P89LPC924 925 Flash單片機數據手冊-03

寬帶信號的產生與分析

P89LPC924 925 Flash單片機使用指南-02 (英)

先進汽車GPU的高速和高效開發將加速智能駕駛的更廣泛普及

更多 培訓課堂
更多 焦點
更多 視頻

技術專區