我們隨便在招聘平台搜」嵌入式開發」這個職位,看到很多職位都要求會STM32,為什麼?
我個人也用了STM32單片機幾年,感覺非常爽,後面做產品能用ST的基本不用別的。
主要原因有以下幾點:
1. 對這個芯片比較熟悉了
2. 比較穩定
3. 資源豐富,價格也合理(最近漲價除外)
4. 資料多,有問題能很快解決
5. 不用配置寄存器就能很輕鬆把外設開起來
其實除了STM32,STM8用着也很不錯,雖然是用IAR開發環境,但開發方式都是調庫,
大大縮短了產品開發周期。
一般做低功耗的產品,我都首選STM8L系列的單片機。
既然STM32的芯片市場需求這麼大,作為開發者來說,想適應市場就必須去學習。
Stm32有人說簡單,也有人說難,實際到底是怎麼情況呢?

我個人感覺STM32還是比較簡單的,就看你怎麼學了,至少對於應用來說,很簡單也方便。
如果你站在刨人祖墳的角度去學習,會很難!
如果你只想把它當工具用,學習會很簡單。
在接觸STM32之前,我已經有幾個項目的經驗了,雖然是用STC和NXP單片機。
但是單片機無非就是那麼回事,配置寄存器控制外設,最後外設去控制電路實現產品的功能。
大概就是這麼個原理,區別就是不同的單片機外設資源不同,以及配置方式不同。
有些單片機是需要自己手動去配置寄存器的,比如說51單片機,NXP(幾年前是,現在不知道有沒有提供庫)。
有些單片機是直接提供了標準庫給你調用,通過調用庫函數就能把單片機外設開起來,典型的就是STM32。
這樣就會產生一個問題。
如果你之前沒接觸過51單片機,一上來就干STM32,你很難去理解配置寄存器開外設的流程。
這樣相當於給你的學習過程埋下一顆定時炸彈,隨時都會爆,具體體現就是你每學一個知識點都會有很多搞不懂的地方,這就是基礎知識缺失導致的。
所以,我一直要求的我學員,我不管你有多聰明,必須從51單片機開始學習。
而事實也證明,看似你直接從STM32是走了捷徑,實際所花的時間比從51開始學習要多,理解也沒那麼深。
不管你是入門51還是STM32單片機,如果自學的話,最好是購買一塊開發板。
然後對照着開發板配套的視頻教程,每看完一個章節都會親手做一個實驗。
順利的話,基本上半個月就能上手了。
單片機編程一般通過兩種語言:
1. 彙編
2. C語言
現在彙編一般用得少,只有那些RAM和ROM非常小的單片機才會用彙編去開發。
大多數都是以C語言為主,所以我建議前期只學習C語言就可以了,我做了10年基本沒用彙編開發過產品。
偶爾一些啟動文件要用彙編改,比如說移植系統,修改堆棧大小。
這些都非常簡單,直接搜一下相關指令看下什麼意思就行了,沒必要為此系統去學習彙編。
我當初根本沒系統去學過STM32,都是有產品用到了,我就順勢買了個開發板(主要是要他們開啟外設的例程),視頻我都懶得看。
有例程以後,從代碼基本上可以看得出來是什麼意思,單片機都大同小異。
比如說配置IO口,我們先要把GPIO時鐘打開,然後選擇你要配置的引腳,設置輸入還是輸出模式,輸出模式又分上拉、下拉、推挽、開漏等等。
最後就可以控制IO輸出高低電平了,如果你有別的單片機基礎,很快就能上手。
別人提供固件庫給你,出發點就是不想讓你浪費時間去理解芯片複雜的寄存器配置。
很多人學不會就是這裡走了彎路,研究STM32數據手冊去配置寄存器,幾百上千個寄存器想看完不現實。
所以,學習STM32,方法很重要!
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/255437.html