整理:Miler Shao 毋庸置疑,越來越多的人加入STM32系列MCU的開發,STM32開發工程師的隊伍也越來越龐大,網絡上相關的技術資料可以說是比比皆是,個人甚至覺得有點泛濫的地步。加上ST MCU的芯片出得快、資料更新頻繁,導致各路網上的資料各期版本都有,五花八門,有時甚至給開發帶來些困擾。關于資料的下載個人推薦www.st.com/mcu 或者www.st.com/stm32,結合關鍵字的查找不難找到自己需要的。不行的話,可以向STMCU代理商的FAE協助,他們經常找的,路徑地址什么的相對來說比較熟悉。 對于打算從事STM32開發應用的朋友來說,前期需要哪些最基本的工具或技術資料,這里跟大家分享下。我分硬件方面和軟件方面【我這里軟件是廣義的,不僅僅指程序代碼】來說。 一、硬件方面: 1.1、調試工具。我們一般用STLINK/JLINK/ULINK,建議首選STLINK,因為STLINK是ST公司自己出的,針對性強,正版、便宜。最關鍵的是ST MCU的芯片型號及相關驅動更新得快,相應的驅動更新升級容易跟得上,不用折騰到處找破解升級等。當然國內市面上也有山寨版,這些不能說不能用,你自行掂量取舍。不過有時工具的便利性可能會影響到工作效率,畢竟時間也是成本。 
1.2、學習評估板。當然這個并非必須的,只是說如果有個現存的學習板或評估板,相對會方便些,尤其對于新手。ST 官方針對各個STM32系列有推出一些學習板,主要有3類。 1.2.1最常見的就是各個系列的探索型學習板,也就是DISCOVERY型學習板。利用它可以針對STM32芯片的基本功能和外設做些體驗性的測試或驗證。此類板價格比較便宜,功能沒做過多的擴展或延伸,但就芯片的基本功能特性做些驗證應該也綽綽有余了。同時ST也附有跟探索板配套的軟硬件資料供客戶使用和參考。 下面三幅圖分別是STM32F0某個系列、STM32F3系列及32F4某系列的DISCOVERY型學習板。 ![]()
 STM32F4DISCOVERRY  1.2.2、ST官方也針對STM32各系列推出了比DISCOVERY型學習板功能更為強大的評估型學習板,即官方的EVAL BOARD。其外設應用得到最大程度的豐富與拓展、人機界面更為方便直觀,參考應用軟件更為全面細致。不過其價格不菲,一般在千元人民幣以上,購買者似乎不多。 下面就分別是針對32F10X系列和STM32F4系列的兩評估學習板,STM3210C-EVAL和STM32F40G-EVAL。 1.2.3 ST官方又主導推出了一種針對STM32開發應用的Nucleo學習板,它最大特點是擴展方便,帶Arduilu的兼容接口,支持云端開發,可以直接自由訪問mbeg.org并免費使用其各類IDE工具和應用驅動資源。下面是塊Nucleo板的基本框架介紹。 除此之外,國內也有不少專門做STM32開發學習板的個人或團體,產品各有特色,淘寶店很多類似產品。其硬件應用線路基本以上面提到的ST官方推出的STM32評估板的線路為基礎,軟件代碼基本以ST官方對外的固件庫和評估板的相關應用驅動代碼為基礎。他們在ST MCU本身及相關應用技術資料的漢化及講解方面,功不可沒。 最后順便提下,如果需要參考電路圖的話,上面提到的各類學習板都可以找到相應參考應用電路。 二、軟件方面 2.1、編譯環境的準備。國內最常用的編譯工具一般是Keil MDK ARM 和 IAR EMBEDDED WORKBENCH.當然還有其它IDE,當然也有用其它IDE的,比方TrueStudio,Hitop等。   2.2 基本的技術資料的準備。 2.2.1、ST MCU選型手冊。這個可以從網上或代理商等地獲得ST MCU選型手冊,或者在ST官網上直接進行在線選型。當然選型的最終敲定,最好跟代理商確認下相關價格和交貨等問題。 2.2.2、芯片的數據手冊,即datasheet。ST MCU的數據手冊并不是一個型對應一個手冊,而是一系列功能接近,但管腳和FLASH容量有些差異的型號共用一個數據手冊。

數據手冊只是就芯片基本的內部資源、管腳定義及相關電性、物理參數給出明確細致的描述。但關于內部功能塊的工作原理及相關寄存器的描述是放在另外一個手冊里,即該系列芯片的參考手冊。 2.2.3、芯片的參考手冊,也就是平常常說的寄存器編程手冊。該手冊一般都非常龐大,動則幾百甚至上千頁。它對MCU芯片的框架和各個功能模塊的工作原理及相關寄存器的使用都有詳盡的描述。每個STM32系列對應一套手冊,并給予不同編號。比方F1系列的是RM0008,F2系列的是RM0033。一般來講,我們是用什么看什么比較現實。
2.2.4、Flash編程手冊。這個手冊主要是針對對芯片內部FLASH存儲器架構、FLASH編程【FLASH寫、擦除等】、OPTION編程的詳細描述。如果不涉及這些的話,可以不看。
2.2.5、內核編程手冊。該手冊主要是對所選ST MCU的內核框架及指令系統、中斷應用做了比較詳細的介紹。有需要時可以查看。
2.2.6、勘誤手冊。每個芯片系列往往都配有勘誤手冊,這個手冊對開發人員很重要。在ST官網叫errata sheet.開發過程中有時遇到的問題,或許就在勘誤表中寫得清清楚楚。
2.2.7、各類應用筆記和技術話題。即官方網站里的application notes和Technical Notes & Articles。類似的這些文章往往對我們的開發或許有很大幫助,可以有選擇性地下載查看。
2.2.8、軟件參考代碼的準備。目前ST主要提供2種庫,一個是針對各個STM32系列的標準外設庫,即傳統老庫。該庫包含各個外設應用的相關驅動函數和基于各類外設應用的項目工程模板。
另外一種固件代碼庫,就是基于STM32CubeMx工具的CUBE固件庫。也是每個系列都有一套Cube庫,相比上面的標準外設庫,它還集成了其它中間件應用驅動函數庫及例程。
上面提到的各類手冊或開發固件包都可以去ST官網www.st.com/mcu或者www.stmcu.com.cn進行下載,建議盡量下載最新版本的。STM32芯片新系列、新型號推出得極為頻繁,資料版本更新及完善也是情理之中。如果跟代理商有聯系的話,可以跟代理商的FAE做些溝通或了解,讓他們給予協助。 三、ST提供的下載工具 這里聊下關于STM32系列MCU應用開發的燒錄下載工具。 除了上面提到的IDE環境具備些基本的下載功能外,再提下ST官方提供的幾個燒錄軟件工具。下面提到的幾個軟件工具包,在STM32 Player的QQ群共享里也有,群號是188428785. 3.1 STM32 Stlink Utility 利用STLINK和該軟件工具可以對STM32芯片進行燒錄、加密、取消加密等操作。【STM32部分系列芯片有LEVEL 2加密,如果做了此級加密,該芯片不能再用它取消讀保戶。】  3.2 STVP 【ST visual programmer】 借助于STLINK,利用該軟件工具可以對芯片進行燒錄下載、擦寫、讀寫保護配置等。該工具對STM8和STM32都適用。
3.3 Flash loader demonstrator 利用UART口對芯片代碼進行更新升級,對芯片進行擦寫、讀寫保護等操作。該工具對STM8和STM32都適用,當然結合到某些型號要具體參看手冊。
 3.4 ST DFU 工具 借助該工具軟件和USB接口對芯片代碼進行更新升級,對芯片進行擦寫、讀寫保護等操作。不過這不是所有的STM32芯片都支持這個模式,具體要參考各系列芯片的參考手冊。
小結下,上面就開發前期IDE環境的準備、基本技術資料的準備、下載工具的準備三個方面做了個整體的大致介紹,希望盡可能地幫到剛接觸或準備了解STM32芯片應用開發的學生或工程師。常言道,磨刀不誤砍柴工,這些前期準備工作對在開發過程中少走彎路、提升效率方面都不無裨益。 |