當(dāng)前位置:首頁 > 公眾號(hào)精選 > 嵌入式微處理器
[導(dǎo)讀]01 話 題 經(jīng)常有大學(xué)生同學(xué)糾結(jié): 我到底是學(xué)STM32還是學(xué)嵌入式linux。 這個(gè)問題很多人都會(huì)有自己的看法,今天我試著從多個(gè)角度,把我了解到的事實(shí)講一下,希望對(duì)大家有所啟發(fā)。 02 STM32確實(shí)好 首先得承認(rèn)STM32確實(shí)好,好到STM32都成了單片機(jī)MCU的代名詞了,


01

話 題


經(jīng)常有大學(xué)生同學(xué)糾結(jié): 我到底是學(xué)STM32還是學(xué)嵌入式linux。
這個(gè)問題很多人都會(huì)有自己的看法,今天我試著從多個(gè)角度,把我了解到的事實(shí)講一下,希望對(duì)大家有所啟發(fā)。


02

STM32確實(shí)好


首先得承認(rèn)STM32確實(shí)好,好到STM32都成了單片機(jī)MCU的代名詞了,現(xiàn)在很多人甚至說單片機(jī)時(shí)默認(rèn)就說STM32,實(shí)際上還有很多單片機(jī)的啊。

  • STM32的第一大好處就是:就業(yè)機(jī)會(huì)確實(shí)多,社會(huì)需求多。

大家學(xué)點(diǎn)技術(shù)圖什么?

還不是為了找工作賺工資。

當(dāng)然我承認(rèn)大家都有更遠(yuǎn)大的理想,但是就算你想造火箭也得畢業(yè)后先能找到工作賺錢糊口開始。

所以如果你讓我學(xué)個(gè)東西都沒公司要,都找不到工作,那學(xué)它肯定錯(cuò)了。

你不妨去各大招聘網(wǎng)站搜索一下,STM32相關(guān)崗位真的很多,你如果STM32玩的溜,找份工作真的不成問題。

而且大多數(shù)一二線城市都有工作機(jī)會(huì),這一點(diǎn)更難得。

總結(jié)一下,學(xué)STM32肯定沒錯(cuò),這玩意至少能讓你有份工作。

  • STM32的第二大好處就是:他是很典型的MCU,可以讓你掌握足夠的MCU開發(fā)能力。

也就是說即使你在工作中需要用到其他MCU,譬如說NXP的LPC系列,Cypress、TI的MCU系列,而這些你從來沒接觸過完全不會(huì)。

但是,只要你熟練掌握STM32,就能很快上手這些MCU的開發(fā)工作。

  • 最后,STM32還有個(gè)優(yōu)勢(shì)就是生態(tài)已成,影響力大。

目前很多國(guó)產(chǎn)MCU廠商如GD、國(guó)民技術(shù)等在推出的國(guó)產(chǎn)MCU也是對(duì)標(biāo)STM32的,在開發(fā)方式甚至是固件庫(kù)方面都和STM32非常類似。

綜上,掌握STM32確實(shí)很有用,STM32最大的特點(diǎn)就是實(shí)在,掌握這項(xiàng)技能很有助你找到一份工作,在單片機(jī)軟硬件工程師這條路上能先上路,走出第一步。


03

STM32的局限性


不能說STM32不好,只能說有局限性。

STM32最大的局限性就是:它只是個(gè)單片機(jī)。

也就是說,你學(xué)習(xí)STM32,其實(shí)學(xué)的都是單片機(jī)相關(guān)的技術(shù)。

譬如GUI方面,你學(xué)STM32可能會(huì)學(xué)emWin,或者touchgfx,或者littlevgl等,但是你幾乎肯定不會(huì)去學(xué)QT和android那些,因?yàn)镾TM32上一般不跑這些。(現(xiàn)在QT也有QT for MCU,也在STM32H7上做了合作,但是應(yīng)用面有限,大部分人大部分項(xiàng)目不會(huì)使用)。

所以你學(xué)到的GUI技術(shù)全都是MCU領(lǐng)域使用的,而這些和主流的GUI的前端與業(yè)務(wù)邏輯分離的設(shè)計(jì)模式(典型的如微軟的WPF,Android,或web前端設(shè)計(jì)等)是有不同的,因此你學(xué)到的東西也是有局限的。

再譬如網(wǎng)絡(luò)應(yīng)用方面,STM32大多數(shù)應(yīng)用都不帶網(wǎng)絡(luò),就算帶網(wǎng)絡(luò)往往也是用通信模組,很少會(huì)需要你基于socket層直接編程,而這才是網(wǎng)絡(luò)編程的關(guān)鍵技能。

所以很多做STM32多年的工程師,實(shí)際上對(duì)網(wǎng)絡(luò)很陌生,甚至是一竅不通。


04

客觀看待STM32


客觀去看,STM32開發(fā)確實(shí)是電子相關(guān)專業(yè)同學(xué)可以去學(xué)習(xí)的一項(xiàng)技能。

或者說,如果你打算學(xué)單片機(jī),那么STM32絕對(duì)是首選。

當(dāng)然了,首選不是說只學(xué)STM32,其實(shí)我個(gè)人更推薦的單片機(jī)學(xué)習(xí)路徑是先用51入門,再進(jìn)階到STM32,這樣更符合學(xué)習(xí)規(guī)律,學(xué)習(xí)效率會(huì)更高。

所以說學(xué)STM32是沒錯(cuò)的。

但是不是說只學(xué)STM32,這個(gè)必須搞清楚。

蘋果很好吃,吃蘋果對(duì)身體好,難道你只吃蘋果嗎?

所以我認(rèn)為正確的對(duì)待STM32的態(tài)度是:

  • 第1條:去學(xué)沒錯(cuò),學(xué)這個(gè)肯定有用。

  • 第2條:不是必須學(xué),假如你工作不是單片機(jī)開發(fā),其實(shí)不會(huì)STM32并不影響。

  • 第3條:不要只學(xué)STM32,一定要擴(kuò)展其他技能,否則面太窄了,太局限。


05

嵌入式Linux是STM32最好的延伸


如果你STM32已經(jīng)學(xué)得不錯(cuò)了,建議延伸學(xué)習(xí)linux。

很多人覺得linux使用沒有STM32廣泛,使用linux的設(shè)備遠(yuǎn)沒有使用STM32的設(shè)備多,招聘崗位中l(wèi)inux相關(guān)也沒有STM32相關(guān)的多,所以不應(yīng)該去學(xué)linux而應(yīng)該去學(xué)STM32。

這個(gè)觀點(diǎn)是錯(cuò)的。

因?yàn)檫@個(gè)觀點(diǎn)把STM32和linux拿來對(duì)比了,然而這2個(gè)東西根本沒有可比性。

你對(duì)比這2個(gè)就好像對(duì)比自行車和小汽車,你說自行車的優(yōu)勢(shì)是便宜,好修理,不堵車,不用交停車費(fèi),不耗油等等,你可以說出來自行車相對(duì)小汽車的很多優(yōu)勢(shì),然而該買小汽車的你給他個(gè)自行車行嗎?

小汽車是自行車的延伸,linux是STM32的延伸,是類似的道理。

后者相對(duì)前者是升級(jí)的關(guān)鍵,而不是平行的關(guān)系。


06

為什么說Linux是STM32的延伸


我們說linux是STM32的延伸,其實(shí)是從技術(shù)角度出發(fā)的。

也就是說從技術(shù)的延續(xù)性,技術(shù)難度,技術(shù)拓展方向角度講,STM32掌握后再去拓展linux是非常合適的。

譬如C語言,STM32用到的C語言特性和難度都要低于linux。

所以當(dāng)你通過熟練掌握STM32的過程已經(jīng)一定程度掌握了C語言,再去學(xué)嵌入式linux,讀linux源碼時(shí),就會(huì)發(fā)現(xiàn)自己的C語言功底得到了升華。

而你讀慣了linux內(nèi)核源碼后,再回過頭來看STM32的標(biāo)準(zhǔn)庫(kù),HAL庫(kù)時(shí),就會(huì)感覺簡(jiǎn)單了很多。

軟件層次來講也是這樣。

比STM32更簡(jiǎn)單的單片機(jī),譬如51單片機(jī),基本不使用庫(kù)函數(shù),都是程序員自己從零開始編程的。

51單片機(jī)的廠商一般也不會(huì)給你提供單片機(jī)的固件庫(kù),主要是太簡(jiǎn)單沒必要。

而STM32就需要固件庫(kù),不管是早期的標(biāo)準(zhǔn)庫(kù)還是現(xiàn)在的HAL庫(kù),都是芯片廠商提供的固件庫(kù),來輔助程序員來進(jìn)行開發(fā)。

到了嵌入式linux階段,分層就更復(fù)雜了。

和硬件相關(guān)的代碼部分成了linux的驅(qū)動(dòng)層,板載硬件管理由linux內(nèi)核組建接管,客戶業(yè)務(wù)功能則由linux應(yīng)用程序來完成。

如果需要網(wǎng)絡(luò),GUI等功能,也都有非常專業(yè)的內(nèi)核層和應(yīng)用層資源移植對(duì)接。

所以說,從技術(shù)角度講,嵌入式linux是完全覆蓋了STM32的。


07

嵌入式Linux的優(yōu)勢(shì)


其實(shí)學(xué)習(xí)linux還有很多優(yōu)勢(shì)。

Linux內(nèi)核可以說是整個(gè)開源軟件社區(qū)的集大成者,在過去幾十年間有大量世界級(jí)優(yōu)質(zhì)程序員向linux kernel貢獻(xiàn)代碼和思想,也有大量的第三方開源項(xiàng)目基于linux的某些組件或linux的設(shè)計(jì)思想來構(gòu)建。

譬如國(guó)內(nèi)現(xiàn)在很火的國(guó)產(chǎn)物聯(lián)網(wǎng)操作系統(tǒng)rt-thread,你去讀它的源碼就會(huì)發(fā)現(xiàn),這完全就是linux的味兒啊。你去看華為的物聯(lián)網(wǎng)操作系統(tǒng)LiteOS,他的源碼中各個(gè)組件之間分隔對(duì)接的osal設(shè)計(jì),也是linux kernel中大量使用的技巧。

所以說為什么要學(xué)linux?

因?yàn)樗娴目梢宰屇阋粍谟酪莸慕鉀Q往后職業(yè)生涯中遇到的大部分技術(shù)需求。

我們學(xué)習(xí)技術(shù)有個(gè)很大問題就是:你今天永遠(yuǎn)不知道明天會(huì)做什么工作,會(huì)需要什么技能。

可能你下個(gè)月開個(gè)新項(xiàng)目新任務(wù),老大就會(huì)給你一個(gè)你根本沒聽過名字的東西讓你玩。你怎么才能快速上手呢?

我的經(jīng)驗(yàn),最靠譜的就是學(xué)好linux。因?yàn)槟銜?huì)發(fā)現(xiàn)你遇到的任何東西都有l(wèi)inux的影子。

只要你學(xué)好了linux,有這個(gè)功底,你學(xué)習(xí)任何新東西時(shí)都會(huì)很快。

我當(dāng)年下決心學(xué)好linux就是因?yàn)榉峙涞揭粋€(gè)指紋鎖研發(fā)的項(xiàng)目,用到的方案是一個(gè)新加坡科技公司開發(fā)的,他的開發(fā)環(huán)境是用cygwin,而我此前從未接觸過。折騰了半天搭建好環(huán)境我一看,這不就是linux的命令行嘛。還好我之前接觸過簡(jiǎn)單的linux命令行,一下子感覺這個(gè)項(xiàng)目就不難了。

此后我就認(rèn)識(shí)到linux的重要性了,下功夫好好學(xué)了linux,這么多年過來,太多事實(shí)案例證明,當(dāng)時(shí)的決策非常英明。


08

不要限制自己


最后說一句,永遠(yuǎn)不要人為給自己設(shè)限,不要自己局限自己。

人要腳踏實(shí)地,不要好高騖遠(yuǎn),這個(gè)沒錯(cuò)。

學(xué)51,學(xué)STM32這都沒錯(cuò),很實(shí)際,很接地氣。

如果你用盡了全力也就能湊合學(xué)好這些,那就做單片機(jī)開發(fā),也能找到工作。

但是如果你還有余力,還愿意繼續(xù)下苦功學(xué)習(xí),那么不要限制自己,繼續(xù)向更高層次進(jìn)發(fā),永攀技術(shù)高峰。

要相信社會(huì)不會(huì)虧待你,會(huì)用升職加薪來回饋你。


end



本文授權(quán)轉(zhuǎn)載自公眾號(hào)“朱老師IT充電站”,作者朱有鵬

-END-




推薦閱讀



【01】鋰電池充電慢?教你用 STM32 制作鋰電池快充充電器
【02】stm32幾種低功耗模式的實(shí)現(xiàn)和差別
【03】如何讓STM32優(yōu)雅地“說”hello world?
【04】stm32幾種低功耗模式的實(shí)現(xiàn)和差別
【05】使用 Python 來開發(fā) STM32F411 !


免責(zé)聲明:整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉