Keil uVersion MDK 5.0 建立STM32工程,在Keil 4時,還沒有這么麻煩。
1. 建立工程目錄:

用于存放工程。
2. 新建工程:

找到剛剛的位置, 給一個項(xiàng)目名字:

保存。
選擇芯片類型:

沒找到,說明你沒有安裝STM32的芯片包,要去官網(wǎng)下載一下咯。
項(xiàng)目配置:
這里很重要,選擇一些必要的內(nèi)容,否則,工程將出現(xiàn)錯誤。
必要的主要是以下部分:

這兩項(xiàng)不選,應(yīng)該不能用。
其他配置:
根據(jù)自己的需要進(jìn)行配置。
假如你選擇的有問題,將會有提示:

根據(jù)提示,選上就對咯。
我的最基本配置:

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

工程成型:

Drivers的錯誤問題解決:
剛剛建立好工程,如果你使用了CMSIS Drivers,如果你恰巧還是比較舊的版本,比如說Keil.STM32F1xx_DFP.1.1.0.pack,你會發(fā)現(xiàn),有部分頭文件找不到,尤其是UART_STM32F10x.h,這是keil 5比較坑的地方。
如下是我的經(jīng)過:
我增加了Driver的相關(guān)組件,但是頭文件都找不到,出現(xiàn)如下錯誤:

'Driver_I2C.h' file not found.
詫異之余,只能找到增加路徑了:

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



增加依賴,根據(jù)安裝目錄決定。
這個時候就解決這個問題了。
還有一個很大的坑:
Driver增加的是UART,但實(shí)際上,keil已經(jīng)更改為USART,所以即便是增加了上述的路徑,還是錯的。
解決辦法:
更新pack:
http://www.keil.com/dd2/Pack/#/eula-container
這里找到自己需要的pack,下載更新了。
重建工程,就沒有這種問題了,國內(nèi)很早就發(fā)現(xiàn),但是,很多人是盜版的,根本沒機(jī)會提交給keil去修改,所以有一段時間這個沒法用,現(xiàn)在已經(jīng)更新好了。
STM32的CMISIS Drivers使用方式
增加了相關(guān)驅(qū)動之后,你會發(fā)現(xiàn),還是不能用,拋出對應(yīng)于每個驅(qū)動的未定義宏錯誤:
如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!"

以及諸如此類的錯誤,這是因?yàn)?,?qū)動是給這一系列所開發(fā)的,你必須要根據(jù)你的芯片,修改RTE_Device.h文件。
我是用的是STM32F103RBT6,我需要按照這個芯片所具有的外部硬件資源,去打開相應(yīng)的模塊定義,就是修改對應(yīng)宏值為1就可以了。
修改方法是,直接去RTE_Device.h里面修改,把對應(yīng)模塊的值修改為1就可以了。一定不要弄錯了,修改的是芯片具有的,或者只修改自己所需要的。
