"); //-->
... /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”,這個就是舊版的宏,只要將這個宏在新版的相應位置定義一下就好

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



然后在這個定義的上方補充定義這個宏就可以解決一部分的問題了,添加這樣一段
#ifndef __STM32F10x_TYPE_H//補充定義舊版的宏
#define __STM32F10x_TYPE_H
#endif

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

*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。
相關推薦
Gartner預測到2027年,跨境GenAI濫用引起的AI數據泄露比例將達到40%
聲控、調光商用彩燈控制電路
貿澤開售采用先進AI實現環境檢測的Bosch BME690空氣質量傳感器
意法半導體新推出的NFC讀取器芯片和全套模塊化開發工具加快非接產品設計
Arm推出GitHub Copilot新擴展程序,助力快速遷移至Arm架構服務器
求職寶典(不斷更新)
尋兼職,承接開發項目
歐度圓柱型插拔自鎖連接器
500 w燈光調變電路
康文特PDA無線餐飲管理系統
彩燈電路
歐盟日本巨額補貼半導體企業:英飛凌、臺積電成焦點
燈光音頻控觸電路
是德科技將在2025年世界移動通信大會上展示無線創新技術
tffs中標map函數的具體意思?
P89LPC924 925 Flash單片機使用指南-02
電子測量儀器產業和技術發展趨勢
從閃存到MRAM:滿足現代FPGA配置的需求
音樂彩色圖電路
光端機在軍工領域的應用和發展趨勢
P89LPC920 921 922 Flash單片機使用指南
P89LPC924 925 Flash單片機數據手冊-03 (英)
優良的設計、卓越的鏈接
Microchip擴展maXTouch M1系列器件,支持汽車大尺寸、曲面及異形顯示屏
在低功耗MCU上實現人工智能和機器學習
P89LPC924 925 Flash單片機數據手冊-03
寬帶信號的產生與分析
P89LPC924 925 Flash單片機使用指南-02 (英)
高薪聘請運動控制高手加盟深圳大族激光科技股份有限公司
先進汽車GPU的高速和高效開發將加速智能駕駛的更廣泛普及