STM32 HAL庫 error: #20: identifier "HAL_StatusTypeDef" is undefined問題

error: #20: identifier “HAL_StatusTypeDef” is undefined

我使用的是stm32l0的芯片,由於沒有標準庫可用,無奈只有折騰HAL庫了。

首先,說下上面的錯誤怎麼來的。我使用stm32cubeMX自動生成了代碼,並且自己在工程裏面新建了文件,文件裏面需要用到HAL外設庫中定義的宏定義,本來應該添加包含“stm32l0xx_hal_dac.h”,但是我發現”stm32l0xx_hal_conf.h” 中有所有外設的頭文件,並且通過宏定義打開,所以我在該文件中添加了下面的語句:

#include "stm32l0xx_hal_conf.h" 

編譯後就出現瞭如下錯誤:
../Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal.h(374): error: #20: identifier
“HAL_StatusTypeDef” is undefined
HAL_StatusTypeDef HAL_Init(void);
../Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal.h(375): error: #20: identifier
“HAL_StatusTypeDef” is undefined
HAL_StatusTypeDef HAL_DeInit(void);
../Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal.h(378): error: #20: identifier
“HAL_StatusTypeDef” is undefined
HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority);
..\Drv\dac\drv_dac.c: 0 warnings, 3 errors

一直想不明白,“HAL_StatusTypeDef”變量在“stm32l0xx_hal_def.h”中已經有了定義,並且該變量也能成功跳轉被找到。我已經包含了宏定義文件“stm32l0xx_hal_conf.h”,宏定義”HAL_DAC_MODULE_ENABLED“也使能了,添加的文件中變量也能成功跳轉找到“stm32l0xx_hal_dac.h”中的定義,爲什麼會報錯!

後來,我在整理main.c文件發現,其添加的頭文件是“stm32l0xx_hal.h”,而不是文件“stm32l0xx_hal_conf.h”,於是,我將自己添加文件中改爲

#include "stm32l0xx_hal.h" 

再次編譯工程,居然編譯成功了。其中的原因,我還沒有想明白,想明白了再回來補上。如果有大神知道原因,請指教!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章