昨天到現在一直在嘗試用STM32 V3.5固件庫建立自己的工程,因為畢竟V3.5出來(lái)已有一段時(shí)間了,用舊庫感覺(jué)不是很爽,所以想使用一些新庫怎么樣,沒(méi)想到用起來(lái)沒(méi)有想象中的那么簡(jiǎn)單,主要還是不熟操作流程,哪里設置什么,昨天摸索了一天,到晚上12點(diǎn)還沒(méi)有弄出來(lái),我頭都弄大了。
當然昨天也有弄好的時(shí)候,可能是由于瞎貓碰到死耗子,關(guān)掉工程在打開(kāi)就不行了,很是郁悶!今天早上一大早就起床了,繼續弄,工夫不負有心人啊,最終還是弄出來(lái)啦!
本文引用地址:http://dyxdggzs.com/article/201611/321207.htm 現在和大家分享一下,希望對你有幫助!
3.5 到3.3 對于一般用戶(hù)而言 基本沒(méi)有什么 界面的上變革 目前看來(lái)好像僅僅改變了一些定義所處的文件位置,看起來(lái)跟合理些,SD 等的驅動(dòng)更加穩定。我一直很是喜歡STM32的官方固件庫 完好的遵循ANSI 風(fēng)格,代碼編寫(xiě)嚴謹,還有一點(diǎn)C語(yǔ)言面向對象的感覺(jué)。更重要的是開(kāi)源,我想這才是能流行起來(lái)的原因。
STM32F103VE 工程交流模板 基于 STM32F10x_StdPeriph_Lib_V3.5.0 [11-March-2011]
-------------->
創(chuàng )建一個(gè)工程模板:
1. 解壓STM32庫文件 然后拷貝
2. 目錄結構:
Main
-> stm32f10x_it.c 此三個(gè)文件在同一個(gè)目錄,用戶(hù)編寫(xiě)。
-> 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的官方固件
-------------->
注意事項:
1. Main.c應該放在_CMSIS的前面。且必須有文件stm32f10x_conf.h ,否則就默認include了keil的stm32f10x_conf.h文件
2. 注意inlcude path的順序.
3. 在Preprocessor Symbols中定義 USE_STDPERIPH_DRIVER,STM32F10X_HD(非常重要哦?。使用標準外設庫驅動(dòng)], 否則編譯出現 assert_param 未找到的錯誤:
4. 優(yōu)化等級 00 表示不優(yōu)化
5. One elf per function. 只編譯用到的函數.
拷貝 STM32F10x_StdPeriph_Examples 下每個(gè)目錄的 main.c stm32f10x_conf.h stm32f10x_it.c 到 src 目錄即是一個(gè)范例
-------------->
Copy Keil 范例的 stm32_Init.c 到項目中,編譯。
發(fā)現一個(gè)定義的錯誤。是因為keil的頭文件和st庫的3.50的頭文件中定義不一樣
keil -> st
USART1_IRQChannel 改為 USART1_IRQn
USART2_IRQChannel 改為 USART2_IRQn
USART3_IRQChannel 改為 USART3_IRQn
編譯通過(guò)!
評論