博客專欄

EEPW首頁 > 博客 > 如何系統(tǒng)的學(xué)習(xí)單片機(jī)?

如何系統(tǒng)的學(xué)習(xí)單片機(jī)?

發(fā)布人:電巢 時間:2022-12-26 來源:工程師 發(fā)布文章

01 需要一塊開發(fā)板——讓單片機(jī)動起來

買一塊開發(fā)板,按照配套的demo程序,自己改改,讓外設(shè)動起來,比如OLED顯示內(nèi)容,電機(jī)啟停、調(diào)速,溫濕度采集等等。這一步是為了讓你體會到,單片機(jī)如何通過編程實現(xiàn)對硬件的操作。

這樣的開發(fā)板太多了,建議從STM32入手,原因有二:一是資料最全,開發(fā)環(huán)境比較友好,而且今后在產(chǎn)品中使用也比較多;二是開發(fā)板都不貴,而且最好選外設(shè)多的,帶顯示,帶通信接口的開發(fā)板。

image.png


即使一開始不懂,開發(fā)板配套的學(xué)習(xí)包,足夠你學(xué)一陣子了,STM32官方也有現(xiàn)成的Cubemx工具來幫你生成基礎(chǔ)代碼。

image.png


02自己設(shè)計一個小demo——掌握基本外設(shè)

我建議有硬件設(shè)計能力的,可以自己設(shè)計制作一款開發(fā)板,盡量多的加入不同類型的外設(shè),因為以后你研發(fā)產(chǎn)品,就是基于這些外設(shè)的應(yīng)用邏輯組合。然后一個個移植外設(shè)驅(qū)動,當(dāng)然更建議自己寫驅(qū)動,驅(qū)動寫得好能最大程度發(fā)揮硬件的性能。

受限于單片機(jī)的性能都比較一般,基礎(chǔ)的外設(shè)的連接方式大致有這些:IO、I2C、SPI、ADDA、UART、CAN、RGB888……等這些低速接口,有的也帶USB。

image.png


等你玩轉(zhuǎn)了這些,以后升級到更強(qiáng)的平臺,那么高速接口學(xué)習(xí)起來也只是工作量的問題,大同小異。

在移植和寫驅(qū)動的過程中,要學(xué)會看datasheet,spec。雖然一個簡單的芯片規(guī)格書就是幾十上百頁,但并不是你都要去看懂的,只要知道提取自己有用的信息,比如I2C設(shè)備,它的總線最高頻率,你在做時序控制時不能超過它的上限。

在調(diào)試過程中,你一定會遇到非常細(xì)節(jié)的問題,這時候,借助一定的工具和手段,可以讓你變得更加高效,比如學(xué)會用示波器去看數(shù)據(jù)波形,學(xué)會看時序,分析通信協(xié)議,用萬用表去檢測基本的故障。

image.png


下面視頻是用STM32通過對步進(jìn)電機(jī)和電磁鐵的控制,來實現(xiàn)紡織機(jī)機(jī)頭的功能。盡管我也做了多年開發(fā),在遇到新的外設(shè)時,調(diào)試還是花了不少精力。參數(shù)是調(diào)出來的,有時候就差幾十us的延時,性能就相差很多,所以在研發(fā)的過程中一定要耐心:

03學(xué)著做一個完整的小產(chǎn)品——產(chǎn)品思維

前2步的基礎(chǔ),新手的你已經(jīng)大致有信心了。接來下可以做一些設(shè)備的聯(lián)動,實現(xiàn)一個產(chǎn)品的基礎(chǔ)功能,一個簡單的單機(jī)設(shè)備。舉個例子,通過溫濕度監(jiān)測,來控制繼電器,繼電器外加電熱絲或加熱裝置,并且實時顯示該溫度值,這就是一個溫度控制的產(chǎn)品了。

image.png


這些設(shè)計不難的,難的是在這一步里你要有一定的產(chǎn)品思維了。要列出你這個產(chǎn)品的需求,解決了什么痛點(diǎn),根據(jù)明確的需求去選擇相應(yīng)的單片機(jī)方案,你要知道實現(xiàn)這樣的功能,需要選擇什么樣的技術(shù)方案,綜合還要考慮成本。

這里面的信息量和變數(shù)其實非常大,比如你要設(shè)計一款帶有線網(wǎng)絡(luò)的產(chǎn)品,那么你是選擇自帶RMII接口的單片機(jī),還是通過增加一個串口轉(zhuǎn)網(wǎng)絡(luò)的模組來實現(xiàn)?這可能涉及到你需要通信的網(wǎng)絡(luò)速度,也要考慮綜合成本,以及開發(fā)的難易程度。

有時候,這需要權(quán)衡產(chǎn)品本身的硬件成本,和你的開發(fā)周期,并不是一味追求硬件成本最優(yōu),如果出貨量不大的產(chǎn)品或項目,應(yīng)該更傾向于選擇自己熟悉的單片機(jī)平臺,這樣開發(fā)周期最短,人力消耗最低,避免撿了芝麻,丟了西瓜的情況發(fā)生,因為很多項目,時間要求是很緊迫的。

做產(chǎn)品,實現(xiàn)功能很簡單,但整體的可靠性、穩(wěn)定性、兼容性是很難的,這個問題主要討論單片機(jī),所以產(chǎn)品其他延伸的話題就不展開了。

04讓你的單片機(jī)連接到全世界——嘗試通信

現(xiàn)在很多產(chǎn)品都物聯(lián)網(wǎng)化了,進(jìn)一步的,你可以去研究基于單片機(jī)的有線、無線通信方式,最簡單的通過串口連接WIFI、GPRS模組,學(xué)習(xí)MQTT等物聯(lián)網(wǎng)通信協(xié)議實現(xiàn)單片機(jī)與互聯(lián)網(wǎng)的連接。

image.png


MQTT協(xié)議基于json,即使完全不懂的人,學(xué)半天也就會了,上手比較容易,PC端有很多客戶端可以直接用,適合信息量不大、實時性要求不高的數(shù)據(jù)采集、遠(yuǎn)程控制。

通信模組和方式就很多了,WIFI、Zigbee、BT、Lora、GPRS、Lora、NB、4G/5G、433等各種小無線,以后可以專門寫一篇來介紹這些通信方式的不同應(yīng)用場景。

之所以把通信這塊單獨(dú)拎出來,因為通信讓萬物互聯(lián),有了更多可玩性和可能性,讓冰冷的單片機(jī)成為有想象力的產(chǎn)品。

最后的總結(jié):做了越多的產(chǎn)品就越覺得,沒有一個產(chǎn)品是簡單的,容易的,希望大家耐心一點(diǎn),打好基礎(chǔ),后面的路子就會很寬。

除了以上4點(diǎn),后面遇到更復(fù)雜的項目,可以上RTOS、MBED等輕量化,適合單片機(jī)的操作系統(tǒng)。大家不要一味想著去搞linux,單片機(jī)一直在迭代,現(xiàn)在性能強(qiáng)的單片機(jī)還是很多的,而實際工業(yè)上有很多需求,單片機(jī)綽綽有余,性價比極高,開發(fā)周期短,穩(wěn)定,這些都是很好的。

#通信##單片機(jī)##stm32##linux##操作系統(tǒng)#


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。

fpga相關(guān)文章:fpga是什么


加速度計相關(guān)文章:加速度計原理


關(guān)鍵詞: 單片機(jī)

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉