學習stm32時踩平的一個坑:#223-D: function "EXTI_Init" declared implicitly
阿新 • • 發佈:2022-03-27
最近買了板子,跟著正點原子的電子資料學習stm32。學到外部中斷時出現這樣一個問題:
如圖程式碼提示有問題,編譯後出現警告:
main.c(25): warning: #223-D: function "EXTI_Init" declared implicitly
編譯可以通過,程式碼下載執行也沒有問題。可作為一個完美主義者,有警告就要消滅。不然感覺很不爽。對不?
這種情況下,通常是由於檔案包含出了問題。可是我的程式碼跟他的幾乎一樣。檔案包含的關係也相關簡單,不太可能出問題。
- 第一步:我下載正點原子的程式碼編譯,沒有問題。
- 第二步:我把他的程式碼複製到我的檔案中,編譯問題依舊。
- 第三步:程式碼一樣,那就是我的檔案命名的問題了。改了檔案的名字之後問題消失。
可是問題出在哪兒呢? - 我的水平不可能那麼高,剛好起的名字和某個HAL庫檔名一樣。
那這是怎麼回事呢?
我是按照正點原子書上的方法,建立工程模板,然後複製。新建檔案c和h檔案,儲存在HARDWARE的相應目錄下。但新建檔案儲存時,不小心沒有選擇檔案目錄,mdk就把檔案直接放在了USER目錄下。
當我往HARDWARE組中新增檔案時,發現HAREWARE目錄下沒有相應檔案。那麼當然是重新再建一個。於是,同一個工程中就有了兩個同名的標頭檔案。儘管user下的檔案是空的什麼也沒有,但還是會有警告。
我刪除user下的檔案後,一切恢復正常。