1. 程式人生 > 其它 >學習stm32時踩平的一個坑:#223-D: function "EXTI_Init" declared implicitly

學習stm32時踩平的一個坑:#223-D: function "EXTI_Init" declared implicitly

最近買了板子,跟著正點原子的電子資料學習stm32。學到外部中斷時出現這樣一個問題:

如圖程式碼提示有問題,編譯後出現警告:

main.c(25): warning:  #223-D: function "EXTI_Init" declared implicitly

編譯可以通過,程式碼下載執行也沒有問題。可作為一個完美主義者,有警告就要消滅。不然感覺很不爽。對不?

這種情況下,通常是由於檔案包含出了問題。可是我的程式碼跟他的幾乎一樣。檔案包含的關係也相關簡單,不太可能出問題。

  • 第一步:我下載正點原子的程式碼編譯,沒有問題。
  • 第二步:我把他的程式碼複製到我的檔案中,編譯問題依舊。
  • 第三步:程式碼一樣,那就是我的檔案命名的問題了。改了檔案的名字之後問題消失。
    可是問題出在哪兒呢?
  • 我的水平不可能那麼高,剛好起的名字和某個HAL庫檔名一樣。
    那這是怎麼回事呢?

我是按照正點原子書上的方法,建立工程模板,然後複製。新建檔案c和h檔案,儲存在HARDWARE的相應目錄下。但新建檔案儲存時,不小心沒有選擇檔案目錄,mdk就把檔案直接放在了USER目錄下。
當我往HARDWARE組中新增檔案時,發現HAREWARE目錄下沒有相應檔案。那麼當然是重新再建一個。於是,同一個工程中就有了兩個同名的標頭檔案。儘管user下的檔案是空的什麼也沒有,但還是會有警告。
我刪除user下的檔案後,一切恢復正常。