使用Keil uVersion MDK 5自帶的CMSIS Driver建立STM32工程


Keil uVersion MDK 5.0 建立STM32工程,不需新建文件夾,拷貝標准函數庫等操作。但該工程僅限自己使用。

1. 建立工程目錄:

 
Paste_Image.png

用於存放工程。

2. 新建工程:

 
Paste_Image.png

找到剛剛的位置, 給一個項目名字:

 
Paste_Image.png

保存。

選擇芯片類型:

 
Paste_Image.png

沒找到,說明你沒有安裝STM32的芯片包,要去官網下載一下咯。

項目配置:

這里很重要,選擇一些必要的內容,否則,工程將出現錯誤。

必要的主要是以下部分:

 
Paste_Image.png

這兩項不選,應該不能用。

其他配置:

根據自己的需要進行配置。

假如你選擇的有問題,將會有提示:

 
Paste_Image.png

根據提示,選上就對咯。

我的最基本配置:

 
Paste_Image.png

Drivers下面,按需選擇咯,但是要注意,需要GPIO、DMA等支持:

 
Paste_Image.png

工程成型:

 
Paste_Image.png

Drivers的錯誤問題解決:

剛剛建立好工程,如果你使用了CMSIS Drivers,如果你恰巧還是比較舊的版本,比如說Keil.STM32F1xx_DFP.1.1.0.pack,你會發現,有部分頭文件找不到,尤其是UART_STM32F10x.h,這是keil 5比較坑的地方。

如下是我的經過:

我增加了Driver的相關組件,但是頭文件都找不到,出現如下錯誤:

 
Paste_Image.png

'Driver_I2C.h' file not found.

詫異之余,只能找到增加路徑了:

 
Paste_Image.png

實際這些頭文件在這里,所以在target里增加路徑:

 
Paste_Image.png
 
Paste_Image.png
 
Paste_Image.png

增加依賴,根據安裝目錄決定。

這個時候就解決這個問題了。

還有一個很大的坑:

Driver增加的是UART,但實際上,keil已經更改為USART,所以即便是增加了上述的路徑,還是錯的。
解決辦法:

更新pack:
http://www.keil.com/dd2/Pack/#/eula-container
這里找到自己需要的pack,下載更新了。

重建工程,就沒有這種問題了,國內很早就發現,但是,很多人是盜版的,根本沒機會提交給keil去修改,所以有一段時間這個沒法用,現在已經更新好了。

STM32的CMISIS Drivers使用方式

增加了相關驅動之后,你會發現,還是不能用,拋出對應於每個驅動的未定義宏錯誤:
如I2C: "I2C not configured in RTE_Device.h!"
SPI的:"SPI not configured in RTE_Device.h!"
最坑的USART/UART: "USART not configured in RTE_Device.h!"

 
Paste_Image.png

以及諸如此類的錯誤,這是因為,驅動是給這一系列所開發的,你必須要根據你的芯片,修改RTE_Device.h文件。

我是用的是STM32F103RBT6,我需要按照這個芯片所具有的外部硬件資源,去打開相應的模塊定義,就是修改對應宏值為1就可以了。

修改方法是,直接去RTE_Device.h里面修改,把對應模塊的值修改為1就可以了。一定不要弄錯了,修改的是芯片具有的,或者只修改自己所需要的。

 
Paste_Image.png

Hello STM32完畢



作者:heguorui
鏈接:https://www.jianshu.com/p/482ff2dedb15
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM