stm32 開發(fā)環(huán)境MDK+庫文件配置
stm32 是一款arm cortex-m3 架構的芯片 結合庫函數(shù)使用 可以更方便的實現(xiàn)各種功能 尤其是結合各種總線開發(fā)應用時 因為庫函數(shù)已經(jīng)封裝很多總線的處理方法和驅(qū)動 直接調(diào)用對應庫函數(shù) 就可以操作各個總線 相比于 直接操作寄存器來說 操作I2C SPI CAN 等總線結構 會簡單很多
stm32 的開發(fā)工具有很多MDK ADS AVR 等 我用的是MDk 其實就是可以編譯arm的keil 界面和keil是一樣的 之前安裝過keil 直接把MDK 覆蓋原來的keil 就可以支持51單片機和arm的芯片的開發(fā)
MDK官網(wǎng)下載地址 :https://www.keil.com/arm/demo/eval/arm.htm
stm32 V3.5.0 庫文件官網(wǎng)下載:stm32f10x_stdperiph_lib.zip
stm32 相關資料:http://www.st.com/internet/mcu/product/164492.jsp
關于開發(fā)應用 是使用庫函數(shù) 還是直接操作寄存器的問題 我覺得使用庫函數(shù) 有很多的好處 尤其是在團隊開發(fā)應用的時候 每個程序員都有自己的代碼風格 加上操作寄存器的復雜 項目巨大的代碼量 會讓開發(fā)和維護變得困難 當然想更為深入了解arm 的原理 直接操作寄存器當然可取 而且當你熟悉到一定程度 可能寫出的代碼 會比庫函數(shù)的效率更高 不過一般的應用 使用庫函數(shù)都可以實現(xiàn) 庫函數(shù)很類似于 php 等語言中框架的概念 對開發(fā)很有幫助
固件庫設置
庫函數(shù)中很多內(nèi)容是可以刪減的 減小項目的大小 可以根據(jù)自己的習慣 改變庫函數(shù)結構
首先解壓縮下載的固件庫(保留一個備份,你懂的)
_htmresc : ST 的logo 完全無用,可以刪去。
Libraries: 比較重要的文件包含STM32的系統(tǒng)文件和大量頭文件,也就是庫文件了。
Project: 包含大量外設的例程,和各個軟件版本的評估版工程模板。KEIL 對應的就是MDK-ARM 文件下的工程模板。你也可以利用這個工程模板來修改,得到你自己的工程模塊,開發(fā)中不需要,可以刪去。
Utilities: 就是評估版的相關文件:也不會用到,可以刪去。
需要先去掉這四個文件的只讀屬性,選擇文件夾后,右鍵屬性,勾去只讀。。。
我刪減后庫函數(shù)結構如下圖:
STM32 v3.5 庫函數(shù)實際文件結構Cmsis 包含微控制器外設訪問層和內(nèi)核設備訪問層文件;
Startup 當然包含的是stm32的 啟動文件,與芯片F(xiàn)lash容量有關,詳見手冊
Libraries 包含的是標準外設庫驅(qū)動源文件(src文件夾) 和 (inc) 標準外設庫驅(qū)動頭文件
User中包含的是項目的代碼 和中斷代碼
Project 用于包含編譯是時生成的一系列文件,Output 用來放置輸出文件 .hex .axf,Listing用來放置Listing信息
MDK設置
在庫函數(shù)壓縮包中找到相應文件 如上圖分配好各個文件 (可參考此文:stm32固件庫使用V3.5) 就可以繼續(xù)下一步
在keil中新建工程 比如建TEST.uvproj,保存在剛才的Project 文件夾下面。選擇你使用的STM32芯片,比如我用的是103RB 的,就選擇那個,確定后,會跳出來個窗口,問你是否復制啟動代碼,選擇否,因為我們庫函數(shù)中已經(jīng)有了,前面的準備工作不是白做的。
然后右鍵TARGET 1,選擇Manage Ccmponents,根據(jù)剛才的庫函數(shù)文件結構把文件加進去,新建文件夾,再加入相應文件。
設置好的界面如下:
keil下的這些文件夾會虛的 不一定是對應存在的文件夾的
最后在右鍵TARGET 1,選擇Options for TARGET1 。。在tab頁 Listing,Output下點擊Select Folder for Objects...設置對應的輸出文件夾 。
Output設置如下:
在C/C++下 還需要設置下Include Paths路徑,這個路徑根據(jù)你的實際文件目錄結構相關:
設置完成后就可以編譯一下測試 庫函數(shù)可以正常運行。