如何更好的去學習STM32呢?(一)入門提示

   從大學開始自己學 STM32到現在工作已經,近四年了。從剛開始的看着看着就能睡着,到後來每天可以熬夜去渴望去學習。期間走了不少彎路,但是現在算是走出來了,所以交流哈我學習的歷程,以及學習中各種門類的資源,希望可以對於初學者有些幫助。

  剛看STM32相信大部分人是初步從51轉過來,甚至有部分是老師直接推薦過來。這時候大家對於C語言屬於一個初窺門徑的階段,所以對於STM32這種函數封裝會有些陌生。所以有個好的學習切入點會很舒服,才能找到寫程序開發的快感、成就感。

 

  初步介紹STM32:

     STM32是意法半導體公司開發的要求高性能、低成本、低功耗的嵌入式應用設計,CortexM系列內核的32位單片機。主要用於工業控制領域。目前在大學期間應用比賽項目比較普遍些。STM32有很多的系類,一般常用的爲F1、F0系類,例如一般的開發板都是F103系類的芯片,而在Stlink以及Jlink上面的下載器的芯片大部分爲F0。

一般學習STM32需要三件套:硬件環境、編譯環境、軟件編程

硬件環境:作爲單片機的開發,我們需要一把趁手的武器

    目前我們常見的學習開發板廠家有正點原子、野火、安富萊、硬石、衆想幾家的開發板,而各個廠家又分了很多型號,針對於不同引腳外設數量分爲高中低的配置。

  其中對於我們乞丐級別的學習,可以在某寶上STM32F103C8T6的開發板,很便宜只有幾塊錢或者正點原子家的Mini版開發板。店家一樣可以提供很多的學習資料。當我們選擇稍微中等寬裕的時候,我們可以選擇例如:正點原子的精英板或者野火的指南者。這兩種開發板都是中等容量的芯片,外設基本也都有開發的模塊,如果能把這樣的板子學習調試OK則對STM32的各種外設配置控制已經很熟悉了。如果大家對於後續開發任務一些通訊學習,攝像頭,或者GSM模塊學習,則可以考慮正點的戰艦開發板或者野火的霸道開發板,衆想的大黃蜂也可以考慮下,大體都差不多。安富萊的程序架構對於我們學習程序編寫比較好,硬石主要在於電機等的機電控制領域比較好。


  • 編譯環境:目前STM32編譯環境有IAR、keil、Atollic TrueSTUDIO for STM32 、eclipse等。

因爲工作的原因,幾種軟件都有安裝應用,軟件詳細說明未來會比較詳細的說明,此次稍微簡單說一哈使用的感悟。

keil是最常用的調試環境,各大開發板的提供商都是用keil教學的,所以keil屬於入門必備,IAR屬於經常調試的盆友們,並且IAR代碼編譯更加優化。eclipse屬於在eclipse開發人員覺得不需要其他軟件,只是在eclipse上面增加開發STM32的開發者所用,而Atollic TrueSTUDIO則是ST近些年依託eclipse架構開發的免費的軟件,界面效果與eclipse基本一樣。


  • 軟件編程:目前學習STM32編程有幾種封裝學習:1. 寄存器版 2. 標準庫 3.HAL庫  4.LL庫  5、自行寫庫

1.寄存器版本,單片機的內存被劃分爲一個個小的寄存器片段進去操作爲控制,而寄存器地址則由芯片廠家設定。本質上我們學習各種版本的 庫最後面都是針對於寄存器的操作,所以學習寄存器的版本是核心,但是正因爲寄存器利用位操作,以及STM32設置好多的寄存器,對於初學者來說很費勁,建議初學者不去進行深入學習,但是在後續學習中寄存器還需要繼續掌握。針對於後續好多外設功能例如:Time輸入捕獲PWM輸出等的實現很多的操作需要一個位一個位去確認。

上圖爲STM32官方的英文手冊中,寄存器位置的分配。目前全書大約有1096頁。(上學的時候老師建議我們看純英文的,後來工作發現好多Datasheet都是純英文的,所以小夥伴們要開始試着中英文對照的看,然後慢慢接受全英文哈)

2.庫函數,庫函數是ST通過對底層寄存器封裝爲函數,方便操作者應用的函數文件包,可以在ST官網進行下載指定的芯片的包,裏面也有不同的示例程序,大家也可以進行學習。

     這就是大致STM觀看學習的途徑,此外你用開發板學習,除了一些單片機交流羣,還可以在幾大開發板的提供商建立的論壇上進行交流溝通問題,以及一個微信公衆號上學習,此處推薦我黃工的微信號,都是乾貨,搜索微信公衆號『strongerHuang』。只是一個粗淺的介紹STM32學習推薦。後續還有還會分享一些我在公司真實遇到的開發問題,以及學習介紹,希望能幫到大家。也歡迎大家關注我的公衆號哈。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章