熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 關于STM32頭文件

關于STM32頭文件

作者: 時間:2016-11-09 來源:網絡 收藏
keil sdk編譯STM32的程序時出現(xiàn)“.incstm32f10x_conf.h(21): error: #5: cannot open source input file "stm32f10x_type.h": No such file or directory”類似的問題,說明沒有搜到此頭文件,如果是用雙引號 “ ” 包含的頭文件,則問題肯定出在沒有把此頭文件放在工程文件夾內。

還有一個問題,已經把此頭文件放在了工程文件夾內,但是編譯時出現(xiàn)這個問題:.incstm32f10x_type.h(28): error: #256: invalid redeclaration of type name "s32" (declared at line487of ".incstm32f10x.h"),沒有任何懷疑,錯誤提示已經明確地說s32這個名字已經在incstm32f10x.h的487行定義過,所以stm32f10x_type.h中對s32的定義屬于重復定義,無效。

本文引用地址:http://www.bjwjmy.cn/article/201611/317808.htm

那么為什么會出現(xiàn)重復定義呢? 通過雙擊該提示到stm32f10x_type.h定義s32的地方,以及到stm32f10x.h的第487行定義s32的地方,會發(fā)現(xiàn)果然有同樣的定義,

如圖所示:

這是不同的頭文件,而且在stm32f10x.h這個頭文件中會包含stm32f10x_type.h(如圖,stm32f10x.h包含了另一個頭文件stm32f10x_conf.h,而在stm32f10x_conf.h里面包含了stm32f10x_type.h,即相當于stm32f10x.h中包含stm32f10x_type.h——即①包含了②,②包含了③,那么①就包含了③,有點啰嗦,但會顯得更清楚一些,呵呵),

為什么還會出現(xiàn)在這兩個相關聯(lián)的頭文件中定義了同一個名字s32呢?

問題就出在版本上。

在我的這個工程中,因為我打算都用雙引號 “ ” 來包含頭文件,所以要把頭文件都放到我的工程文件夾里,并設置好路徑(這里不細說,有問題加后面的QQ聯(lián)系)。問題就來了,stm32f10x.h這個頭文件是keil mdk中的,路徑為keil mdkARMINCSTSTM32F10x,而stm32f10x_conf.h是來自我先前安裝的IAR編譯里的(前面說了,stm32f10x.h中是會包含stm32f10x_conf.h的。至于為什么會把IAR這個編譯器中的頭文件放進去,就不說了,呵呵),正確的方法是只是用一個編譯器中的頭文件,保證版本的一致性,在我的工程中,應該使用kei mdk中的stm32f10x_conf.h,而不是IAR中的。

那么我們看看這不同的編譯器中的同名頭文件有什么區(qū)別,如下圖:

左邊的是Keil中的,版本為V3.5.0,右邊是IAR中的,版本為V1.0,版本不同!??!

版本不同,里面定義的內容不同,自然會出現(xiàn)不能替換的問題了。

所以要特別注意相關聯(lián)的頭文件(有包含關系的)是不是來自同一個版本。



關鍵詞: STM32頭文

評論


技術專區(qū)

關閉