在STM32之前,都是老大頭51,帶著它的“小弟們” MSP430、AVR、PIC在單片機界呼風(fēng)喚雨。
那個時候,市場上遍布8位機,大學(xué)教材用51入門,個人、企業(yè)學(xué)單片機基本上也都在用51。
雖然AVR也有一些8位機市場,但與stc帶領(lǐng)下的51單片機是完全不能相比的。
當然,這個時候也有16位機的msp430,其他廠家單片機還有pic,高端嵌入式處理器等市場有arm7、arm9等。
這個時期的單片機市場是百花齊放、百家爭鳴,但總體來說,還是勢均力敵、一片祥和的。
那么,這個局勢是從什么時候開始打破的呢?這還得從物聯(lián)網(wǎng)的崛起說起。
原因
當時,物聯(lián)網(wǎng)(Internet of Things,IoT)逐步進入人們的視野范圍。隨著它的發(fā)展,嵌入式領(lǐng)域?qū)τ诟咝阅芴幚砥鞯男枨蟪尸F(xiàn)爆發(fā)式增長。
雖然8位CISC(復(fù)雜指令)架構(gòu)內(nèi)核8051占據(jù)了半壁江山,但奈何其性能低下,尋址范圍受限,已經(jīng)難以適應(yīng)更多的新興應(yīng)用領(lǐng)域。
而32位架構(gòu)微處理器內(nèi)核憑借其極佳的執(zhí)行效能,不僅能滿足物聯(lián)網(wǎng)對數(shù)據(jù)處理能力的要求,還能兼顧物聯(lián)網(wǎng)的低功耗和高性能要求,斬獲物聯(lián)網(wǎng)市場的獨家寵愛。
在32位架構(gòu)微處理器中,屬ARM公司推出了面向各類嵌入式應(yīng)用的微控制器核Cortex-M內(nèi)核受到市場青睞,Cortex-M之于32位MCU就如同8051之于8位MCU。
而正是Cortex-M的出現(xiàn),讓ST公司看到了這個內(nèi)核的強大之處——利用該內(nèi)核設(shè)計了大放光芒的STM32,打破了曾經(jīng)的單片機局面。
崛起過程
如今,我們往回看那段歷史,會發(fā)現(xiàn)一切改變都由那時發(fā)生——
從2007年6月11日推出第一代STM32產(chǎn)品——Cortex-M MCU STM32F1開始,單片機市場迎來了STM32新星,32位MCU浪潮,如期而至。
此后,芝麻開花節(jié)節(jié)高,STM32成功的故事也一直在延續(xù)。
ST公司陸續(xù)在每一年都基于新的內(nèi)核或者新的技術(shù)領(lǐng)域有所突破,發(fā)布超過了19個STM32 產(chǎn)品系列,包括一個MPU產(chǎn)品線,生產(chǎn)工藝也從180nm不斷進階到110nm、90nm和40nm。
例如:
2009年推出了全球第一款超低功耗系列STM32 L1;
2010年推出了第一款在高性能的基于90納米工藝、120 MHz 的STM32F2產(chǎn)品線;
2011年推成第一款高性能Contex-M4的處理器STM32F4;
......
2019年推出全球最為強大的第一款雙核處理器STM32MP1、最新一代混合信號Contex-M4 MCUs和世界上最大的MCU STM32H7;
2020年推出全球首顆內(nèi)置LoRa收發(fā)器的SoC——STM32WL。
“一只南美洲亞馬遜流域熱帶雨林中的蝴蝶,偶爾扇動幾下翅膀,可以在兩周以后引起美國德克薩斯州的一場龍卷風(fēng)。”
STM32這只小蝴蝶帶來的改變效果也很明顯。
2007年ST公司的通用MCU全球排名還只是第11位,2015年便上升到第3位,2018年上升到第2位,2018年則在中國供應(yīng)商的排名中ST公司一舉拿下第一的高地,此后數(shù)年,ST的地位幾乎無人撼動。
如何學(xué)習(xí)
入坑STM32后,我們應(yīng)該如何學(xué)習(xí)?
如今,STM32堪稱爆火,并且潛力無窮。所以,有很多人都在學(xué)STM32。
但STM32對入門者可能不是特別友好,因為知識很多,但是對于有一定開發(fā)經(jīng)驗的人來說,就是一把好兵器,它能幫你大大縮短開發(fā)周期。
那應(yīng)該如何入坑STM32呢?
(1) 根據(jù)時間表定時定量學(xué)習(xí)
大學(xué)時期,都有實驗室的學(xué)長學(xué)姐帶著入門,安排任務(wù)。
比如,基本任務(wù)是一周內(nèi)學(xué)完搭好環(huán)境、熟悉調(diào)試軟件,結(jié)合《STM32Fxxx參考手冊》、《STM32固件庫使用手冊》和光盤視頻,實現(xiàn)基本篇的GPIO應(yīng)用。
(2) 舉一反三,并通過階段任務(wù)檢查學(xué)習(xí)效果
在學(xué)習(xí)例程時,可以嘗試修改該例程的外設(shè)配置,達到舉一反三的效果。
每一周,學(xué)長學(xué)姐會根據(jù)你的學(xué)習(xí)進度,安排給你一個階段任務(wù),用來檢查你的學(xué)習(xí)效果。
如果你是自學(xué),那么可以根據(jù)網(wǎng)上教程和各大資源網(wǎng)站上的“STM32入門小項目合集”,主動給自己找一個小項目,把它實現(xiàn)出來。
這里我推薦正點原子的資源,畢竟每次看視頻時的片頭曲“我的未來不是夢”讓我對STM32充滿激情,當然野火、小苗、普中也不錯~
(3) 基本外設(shè)、功能會用就行,后期需要什么再去針對性地學(xué)
按部就班地把STM32知識從頭到尾系統(tǒng)性地學(xué)習(xí)完,固然很好。但是,你要知道學(xué)習(xí)單片機只是為了解決問題,我們只要在遇到問題時,能夠通過STM32解決就行。
因此,當你把基本外設(shè)、功能都差不多掌握了,程序能跑起來,并且也知道哪里可以修改、修改成什么就已經(jīng)基本入門了。
此后,你可以通過一些大大小小項目,鞏固理解和探索新功能,你的經(jīng)驗也隨之增加。
(4) 學(xué)好C語言,可以學(xué)著畫PCB制板、焊接
軟件和硬件都要兩手抓。C語言對于STM32的學(xué)習(xí)至關(guān)重要,C語言不好,還跑什么代碼?學(xué)會畫板子、焊板子,這樣有什么需求,都可以自己添加。
當然,上面的建議都是給0基礎(chǔ)的STM32入門者,若是你有一定基礎(chǔ),那當然是對癥下藥,哪里不會補哪里。
學(xué)海無涯,勇于探索新技術(shù)
“學(xué)海無涯、永無止境”,更何況是每一年都在推陳出新的STM32。
事實上,STM32 的開發(fā)方式已經(jīng)發(fā)生了很大的變化。
比如:
2014 年,ST 公司推出了 HAL 庫和 MCU 圖形化配置軟件STM32CubeMX。
2017 年年底,ST 公司收購了 Atollic 公司,把專業(yè)版 TrueSTUDIO 轉(zhuǎn)為免費軟件。
2019 年 4 月,ST 公司正式推出了自己的 STM32 程序開發(fā) IDE 工具軟件 STM32CubeIDE1.0.0,打造了一個完整的 STM32Cube 生態(tài)系統(tǒng)。
而STM32Cube 生態(tài)系統(tǒng)已經(jīng)完全拋棄了早期的標準外設(shè)庫,STM32 系列 MCU 都提供 HAL固件庫以及其他一些擴展庫。
STM32Cube 生態(tài)系統(tǒng)的兩個核心軟件是STM32CubeMX 和STM32CubeIDE,且都是由 ST 官方免費提供的。
使用 STM32CubeMX 可以進行 MCU 的系統(tǒng)功能和外設(shè)圖形化配置,可以生成STM32CubeIDE 項目框架代碼,包括系統(tǒng)初始化代碼和已配置外設(shè)的初始化代碼。
如果用戶想在生成的 STM32CubeIDE 初始項目的基礎(chǔ)上添加自己的應(yīng)用程序代碼只需把用戶代碼寫在代碼沙箱段內(nèi),就可以在 STM32CubeMX 中修改 MCU 設(shè)置,重新生成代碼,而不會影響用戶已經(jīng)添加的程序代碼。
由此看來,使用STM32CubeMX 和 TrueSTUDIO 進行STM32 開發(fā)是一個良好的組合方式!
編輯:黃飛
?
評論
查看更多