1. 程式人生 > >stm32新建工程編譯老出問題

stm32新建工程編譯老出問題

Issue1:使用的正點原子的STM32例程,但是庫檔案使用
stm32官網或論壇的HALlib裡的.c和.h 檔案編譯老出問題!!!

由於正點原子的庫檔案,sys.h等標頭檔案是自己寫的,並非官方自帶的,所以如果使用的是正點原子論壇裡的模板,則庫檔案和一些標頭檔案需要從正點原子的原始碼例程裡新增,而非新增官方的檔案!!!
如:
keil編譯報錯:#include file”..\SYSTEM\sys\sys.h”includes itself

Issue2:
..\OBJ\TEMP01.axf: Error: L6200E: Symbol HAL_MspDeInit multiply defined (by stm32f1xx_hal_msp_template.o and stm32f1xx_hal_msp.o).l
..\OBJ\TEMP01.axf: Error: L6200E: Symbol HAL_MspInit multiply defined (by stm32f1xx_hal_msp_template.o and stm32f1xx_hal_msp.o).

出現以上錯誤是因為有可能在多個檔案中定義了這個函式,查閱stm32f1xx_hal_msp_template.c和stm32f1xx_hal_msp.c檔案重複中定義了HAL_MspDeInit和HAL_MspInit 函式,keil是不支援的,註釋掉stm32f1xx_hal_msp_template.c裡HAL_MspDeInit、HAL_MspInit 函式的定義即可!