如何系統的學(xué)習單片機?
01 需要一塊開(kāi)發(fā)板——讓單片機動(dòng)起來(lái)
買(mǎi)一塊開(kāi)發(fā)板,按照配套的demo程序,自己改改,讓外設動(dòng)起來(lái),比如OLED顯示內容,電機啟停、調速,溫濕度采集等等。這一步是為了讓你體會(huì )到,單片機如何通過(guò)編程實(shí)現對硬件的操作。
這樣的開(kāi)發(fā)板太多了,建議從STM32入手,原因有二:一是資料最全,開(kāi)發(fā)環(huán)境比較友好,而且今后在產(chǎn)品中使用也比較多;二是開(kāi)發(fā)板都不貴,而且最好選外設多的,帶顯示,帶通信接口的開(kāi)發(fā)板。

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

02自己設計一個(gè)小demo——掌握基本外設
我建議有硬件設計能力的,可以自己設計制作一款開(kāi)發(fā)板,盡量多的加入不同類(lèi)型的外設,因為以后你研發(fā)產(chǎn)品,就是基于這些外設的應用邏輯組合。然后一個(gè)個(gè)移植外設驅動(dòng),當然更建議自己寫(xiě)驅動(dòng),驅動(dòng)寫(xiě)得好能最大程度發(fā)揮硬件的性能。
受限于單片機的性能都比較一般,基礎的外設的連接方式大致有這些:IO、I2C、SPI、ADDA、UART、CAN、RGB888……等這些低速接口,有的也帶USB。

等你玩轉了這些,以后升級到更強的平臺,那么高速接口學(xué)習起來(lái)也只是工作量的問(wèn)題,大同小異。
在移植和寫(xiě)驅動(dòng)的過(guò)程中,要學(xué)會(huì )看datasheet,spec。雖然一個(gè)簡(jiǎn)單的芯片規格書(shū)就是幾十上百頁(yè),但并不是你都要去看懂的,只要知道提取自己有用的信息,比如I2C設備,它的總線(xiàn)最高頻率,你在做時(shí)序控制時(shí)不能超過(guò)它的上限。
在調試過(guò)程中,你一定會(huì )遇到非常細節的問(wèn)題,這時(shí)候,借助一定的工具和手段,可以讓你變得更加高效,比如學(xué)會(huì )用示波器去看數據波形,學(xué)會(huì )看時(shí)序,分析通信協(xié)議,用萬(wàn)用表去檢測基本的故障。

下面視頻是用STM32通過(guò)對步進(jìn)電機和電磁鐵的控制,來(lái)實(shí)現紡織機機頭的功能。盡管我也做了多年開(kāi)發(fā),在遇到新的外設時(shí),調試還是花了不少精力。參數是調出來(lái)的,有時(shí)候就差幾十us的延時(shí),性能就相差很多,所以在研發(fā)的過(guò)程中一定要耐心:
03學(xué)著(zhù)做一個(gè)完整的小產(chǎn)品——產(chǎn)品思維
前2步的基礎,新手的你已經(jīng)大致有信心了。接來(lái)下可以做一些設備的聯(lián)動(dòng),實(shí)現一個(gè)產(chǎn)品的基礎功能,一個(gè)簡(jiǎn)單的單機設備。舉個(gè)例子,通過(guò)溫濕度監測,來(lái)控制繼電器,繼電器外加電熱絲或加熱裝置,并且實(shí)時(shí)顯示該溫度值,這就是一個(gè)溫度控制的產(chǎn)品了。

這些設計不難的,難的是在這一步里你要有一定的產(chǎn)品思維了。要列出你這個(gè)產(chǎn)品的需求,解決了什么痛點(diǎn),根據明確的需求去選擇相應的單片機方案,你要知道實(shí)現這樣的功能,需要選擇什么樣的技術(shù)方案,綜合還要考慮成本。
這里面的信息量和變數其實(shí)非常大,比如你要設計一款帶有線(xiàn)網(wǎng)絡(luò )的產(chǎn)品,那么你是選擇自帶RMII接口的單片機,還是通過(guò)增加一個(gè)串口轉網(wǎng)絡(luò )的模組來(lái)實(shí)現?這可能涉及到你需要通信的網(wǎng)絡(luò )速度,也要考慮綜合成本,以及開(kāi)發(fā)的難易程度。
有時(shí)候,這需要權衡產(chǎn)品本身的硬件成本,和你的開(kāi)發(fā)周期,并不是一味追求硬件成本最優(yōu),如果出貨量不大的產(chǎn)品或項目,應該更傾向于選擇自己熟悉的單片機平臺,這樣開(kāi)發(fā)周期最短,人力消耗最低,避免撿了芝麻,丟了西瓜的情況發(fā)生,因為很多項目,時(shí)間要求是很緊迫的。
做產(chǎn)品,實(shí)現功能很簡(jiǎn)單,但整體的可靠性、穩定性、兼容性是很難的,這個(gè)問(wèn)題主要討論單片機,所以產(chǎn)品其他延伸的話(huà)題就不展開(kāi)了。
04讓你的單片機連接到全世界——嘗試通信
現在很多產(chǎn)品都物聯(lián)網(wǎng)化了,進(jìn)一步的,你可以去研究基于單片機的有線(xiàn)、無(wú)線(xiàn)通信方式,最簡(jiǎn)單的通過(guò)串口連接WIFI、GPRS模組,學(xué)習MQTT等物聯(lián)網(wǎng)通信協(xié)議實(shí)現單片機與互聯(lián)網(wǎng)的連接。

MQTT協(xié)議基于json,即使完全不懂的人,學(xué)半天也就會(huì )了,上手比較容易,PC端有很多客戶(hù)端可以直接用,適合信息量不大、實(shí)時(shí)性要求不高的數據采集、遠程控制。
通信模組和方式就很多了,WIFI、Zigbee、BT、Lora、GPRS、Lora、NB、4G/5G、433等各種小無(wú)線(xiàn),以后可以專(zhuān)門(mén)寫(xiě)一篇來(lái)介紹這些通信方式的不同應用場(chǎng)景。
之所以把通信這塊單獨拎出來(lái),因為通信讓萬(wàn)物互聯(lián),有了更多可玩性和可能性,讓冰冷的單片機成為有想象力的產(chǎn)品。
最后的總結:做了越多的產(chǎn)品就越覺(jué)得,沒(méi)有一個(gè)產(chǎn)品是簡(jiǎn)單的,容易的,希望大家耐心一點(diǎn),打好基礎,后面的路子就會(huì )很寬。
除了以上4點(diǎn),后面遇到更復雜的項目,可以上RTOS、MBED等輕量化,適合單片機的操作系統。大家不要一味想著(zhù)去搞linux,單片機一直在迭代,現在性能強的單片機還是很多的,而實(shí)際工業(yè)上有很多需求,單片機綽綽有余,性?xún)r(jià)比極高,開(kāi)發(fā)周期短,穩定,這些都是很好的。
#通信##單片機##stm32##linux##操作系統#
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。
fpga相關(guān)文章:fpga是什么
加速度計相關(guān)文章:加速度計原理