STM32 Keil-MDK工程模板 V3.5 固件庫
原來一直在用3.3 的固件庫,3.4 的出來好久了 也沒顧得上更新如今的3.5 的庫再也忍不住了,建好了個(gè)新的V3.5的工程模板 用的是最新的MDK4.20 .
3.5 到3.3 對于一般用戶而言 基本沒有什么 界面的上變革 目前看來好像僅僅改變了一些定義所處的文件位置,看起來跟合理些,SD 等的驅(qū)動(dòng)更加穩(wěn)定。我一直很是喜歡STM32的官方固件庫 完好的遵循ANSI 風(fēng)格,代碼編寫嚴(yán)謹(jǐn),還有一點(diǎn)C語言面向?qū)ο蟮母杏X。更重要的是開源,我想這才是能流行起來的原因。
工程移植了 KEIL 的圖形化配置向?qū)tm32_Init.c
工程路徑Cortex_M3_Project_V3.5STM32STM32F10X_HDRVMDK
-------------->
青島理工大學(xué) 琴島學(xué)院 2011/May/12
機(jī)電工程系 ——Yangyue&&NERV
QQ:357017598
-------------->
STM32F103ZE 工程交流模板 基于 STM32F10x_StdPeriph_Lib_V3.5.0 [11-March-2011]
-------------->
創(chuàng)建一個(gè)工程模板:
1. 解壓STM32庫文件 然后拷貝
2. 目錄結(jié)構(gòu):
Main
-> stm32f10x_it.c 此三個(gè)文件在同一個(gè)目錄,用戶編寫。
-> stm32f10x_conf.h
-> main.c
_CMSIS
-> core_cm2.c 匯編接口
-> system_stm32f10x.c
_DeviceSupport
-> 所有的s文件 啟動(dòng)代碼
Select the corresponding startup file depending of the used device:
- startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices
- startup_stm32f10x_ld.s: for STM32 Low density devices
- startup_stm32f10x_md_vl.s: for STM32 Medium density Value line devices
- startup_stm32f10x_md.s: for STM32 Medium density devices
- startup_stm32f10x_hd.s: for STM32 High density devices
- startup_stm32f10x_xl.s: for STM32 XL density devices
- startup_stm32f10x_cl.s: for STM32 Connectivity line devices
_STM32F10x_StdPeriph_Driver
-> 所有的c文件 V3.5.0的官方固件
-------------->
注意事項(xiàng):
1. Main.c應(yīng)該放在_CMSIS的前面。且必須有文件stm32f10x_conf.h , 否則就默認(rèn)include了keil的stm32f10x_conf.h文件
2. 注意inlcude path的順序.
3. 在Preprocessor Symbols中定義 USE_STDPERIPH_DRIVER[使用標(biāo)準(zhǔn)外設(shè)庫驅(qū)動(dòng)], 否則編譯出現(xiàn) assert_param 未找到的錯(cuò)誤:
4. 優(yōu)化等級(jí) 00 表示不優(yōu)化
5. One elf per function. 只編譯用到的函數(shù).
拷貝 STM32F10x_StdPeriph_Examples 下每個(gè)目錄的 main.c stm32f10x_conf.h stm32f10x_it.c 到 src 目錄 即是一個(gè)范例
-------------->
Copy Keil 范例的 stm32_Init.c 到項(xiàng)目中,編譯。
發(fā)現(xiàn)一個(gè)定義的錯(cuò)誤。 是因?yàn)閗eil的頭文件和st庫的3.50的頭文件中定義不一樣
keil -> st
USART1_IRQChannel 改為 USART1_IRQn
USART2_IRQChannel 改為 USART2_IRQn
USART3_IRQChannel 改為 USART3_IRQn
編譯通過!
--------------->
Copy Keil 范例的 RTX_Conf_CM.c 到項(xiàng)目中, 設(shè)置options中Operation system 為RTX-Kernel
可以開始使用Keil的RTOS.
用這個(gè)模板 輕松實(shí)現(xiàn)圖形化配置 懶人有福了,不過stm32_Init.c 現(xiàn)在一直保持1.3 的狀態(tài) 使用的局限性還是比較多的,目前我基本不用。