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