記得我剛出來(lái)工作的時(shí)候,一直從事stc 51單片機(jī)產(chǎn)品的開(kāi)發(fā),后來(lái)接觸到了NXP的單片機(jī) 。
一下從51過(guò)渡到ARM,確實(shí)讓我頭疼了一段時(shí)間,不過(guò)還好,都是配置寄存器去開(kāi)發(fā),至少開(kāi)發(fā)模式是相同的,就是要看著數(shù)據(jù)手冊(cè)配置比較耗時(shí)間罷了 。
后面領(lǐng)導(dǎo)要規(guī)劃一款新產(chǎn)品,讓我和硬件工程師配合去選一個(gè)單片機(jī) 。
當(dāng)時(shí)我還只是改別人代碼的水平,哪里懂選型的東西,又不敢讓領(lǐng)導(dǎo)知道,就只能偷偷去請(qǐng)教大佬同事 。
他在這家公司做了有3,4年了,對(duì)產(chǎn)品也很熟悉,他說(shuō)可以用stm32的單片機(jī)來(lái)做 。
就是那次開(kāi)始,我正式接觸到單片機(jī),乍一想,已經(jīng)是8,9年前了 。
不過(guò)當(dāng)時(shí),教程各方面沒(méi)現(xiàn)在這么完善,我就在網(wǎng)上買(mǎi)了個(gè)開(kāi)發(fā)板,是沒(méi)有配套視頻教程的 。
因?yàn)槲矣袉纹瑱C(jī)的基礎(chǔ),所以我認(rèn)為只要有每個(gè)外設(shè)的使用例程就可以了 。
萬(wàn)萬(wàn)沒(méi)想到的是,打開(kāi)那些外設(shè)例程的時(shí)候,讓我一臉茫然,這到底是什么鬼東西?怎么用GPIO點(diǎn)個(gè)燈這么復(fù)雜 。
又要加載庫(kù)文件,又要定義結(jié)構(gòu)體,又要開(kāi)啟時(shí)鐘 。。。。。
開(kāi)發(fā)模式完全跟我以前不一樣,后面研究了才知道stm32可以直接用官網(wǎng)提供的固件庫(kù)開(kāi)發(fā) 。
也就是直接調(diào)用他們的函數(shù),就能把stm32的每個(gè)外設(shè)都用起來(lái),不用去關(guān)心寄存器具體是怎么配置的 。
如果你深入到固件庫(kù)的代碼,會(huì)發(fā)現(xiàn)還有一些匯編和c語(yǔ)言混合寫(xiě)的代碼 。
【c語(yǔ)言開(kāi)發(fā)單片機(jī)的優(yōu)點(diǎn) 單片機(jī)c語(yǔ)言必背代碼】如果新手沒(méi)經(jīng)驗(yàn),很容易走彎路,最近我們無(wú)際單片機(jī)編程有個(gè)學(xué)員就是這樣 。
他總是喜歡鉆牛角尖,什么都想搞透,覺(jué)得自己如果不把庫(kù)函數(shù)搞透的話,以后產(chǎn)品開(kāi)發(fā)碰到問(wèn)題了不知道怎么解決 。
其實(shí)這種做法有好處也有壞處 。
好處就是鉆牛角尖你能理解地更加深刻 。
壞處就是他鉆的時(shí)機(jī)不對(duì),當(dāng)你編程水平還不足,產(chǎn)品經(jīng)驗(yàn)也不足的情況下,盲目去鉆研別人幾年沉淀出來(lái)的精華,明顯是不現(xiàn)實(shí)的,如果被你鉆研透了,你就真的是天才了!
現(xiàn)實(shí)大多數(shù)人都是普通人,都要遵循正確的方法去學(xué)習(xí),這樣才能以最快的速度學(xué)會(huì) 。
水平不夠的情況下去硬碰硬,最后只能讓自己遍體鱗傷,越學(xué)越迷茫,越學(xué)越焦慮,最后放棄 。
學(xué)習(xí)STM32的重點(diǎn)應(yīng)該是去學(xué)習(xí)他們的固件庫(kù)怎么使用,先把庫(kù)用熟 。
即便我做這個(gè)行業(yè)10年,你讓我不借助例程,自己去調(diào)固件庫(kù),自己通過(guò)寄存器去配置外設(shè),我也做不到 。
但是即便我做不到,依然不妨礙我用stm32單片機(jī)做產(chǎn)品 。
所以,你知道作為一個(gè)工程師來(lái)說(shuō),重點(diǎn)在哪里了吧?
重點(diǎn)根本不在單片機(jī),單片機(jī)只是工具,我們第一步就是能把它用起來(lái),而不是去深究它為什么這么用就能把外設(shè)開(kāi)起來(lái) 。
如果你去鉆這種牛角尖,光是stm32這個(gè)單片機(jī)都?jí)蚰銓W(xué)5-10年的了 。
實(shí)際開(kāi)發(fā)產(chǎn)品程序的時(shí)候,前期會(huì)花幾天時(shí)間把單片機(jī)外設(shè)開(kāi)起來(lái) 。
然后剩下大多數(shù)時(shí)間都是在寫(xiě)產(chǎn)品功能邏輯部分的代碼,這個(gè)才是核心 。
特別是像今年stm32價(jià)格突然暴漲10倍,一些公司會(huì)用一些別的芯片來(lái)替代 。
試想一下,如果你把所有精力都放到學(xué)習(xí)單片機(jī)上去,那你的開(kāi)發(fā)周期得多長(zhǎng),早都被老板干掉了 。
不管學(xué)習(xí)任何一款單片機(jī),核心都在于你的編程水平和思維 。
就好比stm32這款單片機(jī),他們的固件庫(kù)大量用了指針、結(jié)構(gòu)體和枚舉 。

這個(gè)時(shí)候即便你沒(méi)學(xué)過(guò)stm32,但是你熟練c語(yǔ)言的指針、結(jié)構(gòu)體、枚舉這些,你大概都能看懂他們固件庫(kù)的底層邏輯 。
推薦閱讀
- ios軟件開(kāi)發(fā)入門(mén)教程 安卓變ios系統(tǒng)操作步驟
- 淘寶怎么開(kāi)發(fā)票過(guò)程 淘寶怎么開(kāi)發(fā)票
- 語(yǔ)言描寫(xiě)的句子 語(yǔ)言描寫(xiě)的優(yōu)美句子
- 小問(wèn)題但看你怎么表示了
- javaweb項(xiàng)目開(kāi)發(fā)案例 java項(xiàng)目開(kāi)發(fā)案例經(jīng)典
- 贊美老師的優(yōu)美語(yǔ)段 稱贊好老師的經(jīng)典語(yǔ)言
- 勵(lì)志語(yǔ)言短句大全 人生勵(lì)志的句子經(jīng)典語(yǔ)句
- log函數(shù) C語(yǔ)言中l(wèi)og函數(shù)怎么使用啊
- 免費(fèi)的低代碼開(kāi)發(fā)平臺(tái) 零代碼開(kāi)發(fā)是什么
- java項(xiàng)目開(kāi)發(fā)實(shí)例 java開(kāi)源框架有哪些
