0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

入坑單片機(jī)的成長(zhǎng)之路

傳感器技術(shù) ? 來源:傳感器技術(shù) ? 作者:傳感器技術(shù) ? 2020-12-24 14:54 ? 次閱讀

寫這篇文章的初衷要從最近帶我一個(gè)朋友入坑學(xué)習(xí)單片機(jī)的經(jīng)歷開始講起;

我要用梁靜茹給我的勇氣寫寫如何入坑單片機(jī);

我的一個(gè)朋友以前是汽車電子技術(shù)專業(yè),畢業(yè)之后去做了和汽車相關(guān)的工作,修了一年車;

其實(shí)干一行愛一行,三百六十行,行行出狀元,確實(shí)挺好的;

不過修車總給他一種一眼看到頭的感覺(子非魚,安知魚之樂?對(duì)不起,他自己告訴我的);

于是,他跳槽了,找了一份電子工程師的工作;

工作內(nèi)容和我差不多,平日里打打雜;

平淡的日子就這樣重復(fù)著,直到有一天,他說想學(xué)單片機(jī);我準(zhǔn)備給他支支招。

基礎(chǔ)部分

DAY 1

第一天,幫他整理了整體的學(xué)習(xí)路線,基礎(chǔ)知識(shí)篇;

C語(yǔ)言是一本必須掌握的編程語(yǔ)言,看視頻的效率相對(duì)來說會(huì)高一點(diǎn),所以我給他推薦了B站 浙大翁愷老師的C語(yǔ)言視頻;

因?yàn)橐曨l還挺長(zhǎng)的,我只推薦他看了比較基礎(chǔ)的部分,做一下課后習(xí)題,掌握基本的語(yǔ)法,if,while,for等語(yǔ)句;

紙上得來終覺淺,學(xué)單片機(jī)還是重在實(shí)踐;為了開源節(jié)流,我把以前吃灰的STM32開發(fā)板拿給他,畢竟資料很多嘛,學(xué)起來也方便;

理想是很豐滿:原本計(jì)劃用cubemx+st官方的HAL庫(kù)來進(jìn)行實(shí)踐,畢竟B站還有之前開發(fā)板的配套資料也不少;

現(xiàn)實(shí)卻很骨感:

裝cubemx軟件就搞的滿頭大汗了,最后是安裝的JDK版本不對(duì),直接裂開,一個(gè)晚上時(shí)間沒了;

我給他操作了一遍使用cubemx配置自動(dòng)生成代碼,然后點(diǎn)亮一個(gè)LED,整個(gè)過程很順利,沒有寫一行代碼,但是我給他解釋代碼的時(shí)候,他是完全懵逼的狀態(tài),不知其所以然,這里有十萬個(gè)黑人問號(hào)臉?。?!

好吧,畢竟HAL庫(kù)封裝的很不錯(cuò),感覺對(duì)新手不太友好(前面提到他C語(yǔ)言基礎(chǔ)還不是很扎實(shí));

后來我知道他偷偷跑去看結(jié)構(gòu)體和指針的內(nèi)容了。

看來還是得用51單片機(jī),因?yàn)楹?jiǎn)單,可以先點(diǎn)亮一個(gè)燈,建立起興趣;

給他推薦了某寶的一塊51單片機(jī)開發(fā)板,隨便找的,功能都大同小異;

DAY 2 —DAY N

開發(fā)板隔天就到了,看配套視頻,寫下了單片機(jī)的hello world,然后燈就亮了;

#include sbitLED=P1^0; voidmain(void){ LED=1; while(1){ } }

同樣是點(diǎn)亮一個(gè)LED,但是這次好像有內(nèi)味道了,看到實(shí)驗(yàn)成果,他笑出了豬叫;

后面給他推薦了郭天祥的視頻《十天學(xué)會(huì)單片機(jī)》;

看視頻,一邊補(bǔ)充C語(yǔ)言知識(shí),一邊對(duì)照著每個(gè)單片機(jī)講解視頻進(jìn)行學(xué)習(xí),視頻中的講解大多比較淺顯易懂,對(duì)于新手比較友好;

把課后習(xí)題一個(gè)一個(gè)做掉,流水燈,數(shù)碼管,串口,定時(shí)器,外部中斷,初步掌握這些基本的外設(shè)的應(yīng)用之后,

他還嘗試做了一個(gè)循跡小車;雖然循跡小車比較簡(jiǎn)單,但是很有里程碑意義的,這里面涉及到傳感器技術(shù),直流電機(jī)的驅(qū)動(dòng),以及微控制器等技術(shù);

雖然《十天學(xué)會(huì)單片機(jī)》的視頻標(biāo)題略顯浮躁,但是作為入門,他花的時(shí)間遠(yuǎn)比十天要長(zhǎng),所以新手千萬不要因?yàn)樽约簩W(xué)得沒有別人快而焦慮,產(chǎn)生挫敗感,從而自我否定,自我懷疑;

但是需要及時(shí)思考和總結(jié)自己的學(xué)習(xí)方法是否高效,是否有辦法優(yōu)化效率;

最后,按照我個(gè)人的觀點(diǎn)(如有偏駁,請(qǐng)輕拍),對(duì)于零基礎(chǔ)的新手,方法策略是實(shí)踐;

剛開始要避免學(xué)習(xí)冗雜的理論,選擇簡(jiǎn)單友好的開發(fā)環(huán)境,不是一上來就是啃厚厚的理論書,學(xué)習(xí)工具鏈,學(xué)習(xí)Linux環(huán)境,匯編,這樣學(xué)習(xí)曲線太陡峭,容易產(chǎn)生挫敗感;

設(shè)置階段性的學(xué)習(xí)目標(biāo),可以拆分成容易完成的小任務(wù),每完成一個(gè)任務(wù)都能形成正向反饋,增加信心,從而堅(jiān)信自己能學(xué)好,能繼續(xù)學(xué)下去;

掌握對(duì)單片機(jī)進(jìn)行應(yīng)用的方法之后,可以以點(diǎn)帶面,再對(duì)知識(shí)盲區(qū)進(jìn)行掃盲,從而拓寬知識(shí)的廣度同時(shí),增加深度;

回歸正題

好了,下面言歸正傳,問題是如何系統(tǒng)地學(xué)習(xí)單片機(jī),所以本文著眼于討論如何系統(tǒng)地學(xué)習(xí)單片機(jī),而單片機(jī)這門技術(shù)是否有前景,則不做闡述。

如何系統(tǒng)地學(xué)習(xí)單片機(jī)?我感覺很難系統(tǒng)學(xué)習(xí),因?yàn)檫@是一個(gè)多學(xué)科交叉的技術(shù);

另外,如果你用單片機(jī)做不同的項(xiàng)目,應(yīng)用到不同的領(lǐng)域,那有可能會(huì)涉及新的知識(shí)盲區(qū);

所以是掌握好單片機(jī)這個(gè)技術(shù)的理論知識(shí)作為基礎(chǔ)支撐,然后不斷拓展自己的知識(shí)面,不斷提高知識(shí)深度;

下圖是我平時(shí)整理的思維導(dǎo)圖,做的不是很好,都是每次想到一些就補(bǔ)充一些,所以還有些凌亂;

如果覺得對(duì)你有幫助,可以在[小麥大叔]公眾號(hào)后臺(tái)回復(fù)[技術(shù)思維導(dǎo)圖]領(lǐng)取xmind格式的文件;

貼這張圖的目的是什么呢?只是想說明和單片機(jī)相關(guān)的技術(shù)會(huì)涉及到很多東西,所以著眼點(diǎn)應(yīng)該是加強(qiáng)基礎(chǔ)知識(shí)的建設(shè);

基礎(chǔ)編程

C語(yǔ)言必須精通,但絕非一朝一夕的事情,需要大量時(shí)間去實(shí)踐,去寫代碼,去調(diào)試,去做項(xiàng)目,同時(shí)還得學(xué)習(xí)理論,通過實(shí)踐加深理解,推薦書籍《C 和指針》,《C 陷阱與缺陷》等;

語(yǔ)言只是工具,學(xué)會(huì)了C語(yǔ)言,你已經(jīng)知道如何砌磚了,但是如何把樓蓋高,蓋牢,蓋的好看呢?

這時(shí)候,就需要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),算法和設(shè)計(jì)模式,這里推薦《算法導(dǎo)論》,《代碼大全》都不錯(cuò),也是經(jīng)典了,而且這兩本書也會(huì)長(zhǎng)期陪伴著你;

再到后面,發(fā)現(xiàn)裸機(jī)編程已經(jīng)很難滿足學(xué)習(xí)欲望了,這時(shí)候可能會(huì)學(xué)習(xí)實(shí)時(shí)系統(tǒng)了,FreeRTOS,RTThread,都是十分優(yōu)秀的項(xiàng)目;

慢慢地學(xué)會(huì)讀這些項(xiàng)目的源碼,讀優(yōu)秀項(xiàng)目的源碼,這是提高很快的途徑;

這時(shí)候,還不夠,操作系統(tǒng)微機(jī)原理(EE)/計(jì)算機(jī)組成原理(CS),這些書可以操作起來了;

后來還可能會(huì)接觸到Linux,這是個(gè)龐然大物,LKD,LDD,ULK,這三本書,就夠啃了;當(dāng)然前提還得學(xué)會(huì)Linux環(huán)境下編程,shell腳本,makefile等等等,內(nèi)容太多了,我對(duì)Linux涉獵不是很深入,如果是做應(yīng)用的話,AUPE啃一下,一定會(huì)受益匪淺的;

硬件部分

模擬電子技術(shù)和數(shù)字電子技術(shù),如果是EE科班都會(huì)開設(shè)這兩門課程的,如果是非科班,零基礎(chǔ),可以自學(xué)一下;

推薦麻省理工的公開課《電路與電子學(xué)》,教授講得很好,里面已經(jīng)涵蓋了模電和數(shù)電的內(nèi)容;

原理圖設(shè)計(jì),能看懂?dāng)?shù)據(jù)手冊(cè),根據(jù)項(xiàng)目需求進(jìn)行電子元器件的選型;

前提是,熟悉最基本的電子元器件,阻容,磁珠,MOS管,二極管等等;

另外還有功能元器件也需要了解,運(yùn)放,數(shù)字IC,存儲(chǔ)芯片等等;

但是這還遠(yuǎn)遠(yuǎn)不夠,可能還要板載電源,用LDO,還是DCDC,如果是DCDC還得考慮紋波,噪聲等等,不過這好像和單片機(jī)又扯遠(yuǎn)了(通常會(huì)有專門電源工程師),如果沒有,那你上;

PCB的Layout,需要學(xué)習(xí)一款EDA軟件,Altium designer用的比較多,Pads,開源的KiCad也不錯(cuò),多用用就熟練了,不懂的多問搜索引擎;

Layout的設(shè)計(jì)規(guī)范可以參考一下華為的設(shè)計(jì)規(guī)范,注意一下板機(jī)的EMC,布線,鋪銅,接地方式以及回流面積,如果是低速板,相對(duì)難度會(huì)小一點(diǎn),硬件的坑很深,甚踩;

最后我想說的是最重要的還是實(shí)踐,實(shí)踐,實(shí)踐,自己做個(gè)板子,發(fā)出去打樣,現(xiàn)在打樣還是很便宜了,甚至連SMT都包了,軟件靠精力,硬件靠經(jīng)歷,多爬坑,學(xué)的就多了,會(huì)的也就多了,技術(shù)在于積累。

總結(jié)

本文簡(jiǎn)單介紹了學(xué)習(xí)單片機(jī)的技術(shù)路線,分別從軟件角度和硬件角度給出了簡(jiǎn)單的方法,單片機(jī)開發(fā)是軟硬結(jié)合的,所以軟件的學(xué)習(xí)和硬件的學(xué)習(xí),缺一不可;

筆者能力和水平有限,文中難免存在錯(cuò)誤和紕漏,請(qǐng)大佬不吝賜教。

原文標(biāo)題:我的單片機(jī)成長(zhǎng)之路

文章出處:【微信公眾號(hào):傳感器技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6041

    文章

    44616

    瀏覽量

    637430
  • 元器件
    +關(guān)注

    關(guān)注

    112

    文章

    4744

    瀏覽量

    92687

原文標(biāo)題:我的單片機(jī)成長(zhǎng)之路

文章出處:【微信號(hào):WW_CGQJS,微信公眾號(hào):傳感器技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)Debug工具性能對(duì)比 單片機(jī)調(diào)試常用命令

    單片機(jī)(Microcontroller Unit, MCU)調(diào)試是嵌入式開發(fā)中的一個(gè)重要環(huán)節(jié),它幫助開發(fā)者發(fā)現(xiàn)和修復(fù)代碼中的錯(cuò)誤,優(yōu)化程序性能。不同的單片機(jī)和開發(fā)環(huán)境可能使用不同的調(diào)試工具和命令
    的頭像 發(fā)表于 12-19 09:56 ?415次閱讀

    如何優(yōu)化單片機(jī)項(xiàng)目的功耗

    在現(xiàn)代電子設(shè)計(jì)中,功耗優(yōu)化已成為一個(gè)不可忽視的重要議題。對(duì)于單片機(jī)(MCU)項(xiàng)目而言,功耗不僅關(guān)系到產(chǎn)品的能效比,還直接影響到電池壽命和熱管理。 硬件層面的功耗優(yōu)化 1. 選擇合適的單片機(jī) 選擇一個(gè)
    的頭像 發(fā)表于 11-01 14:16 ?472次閱讀

    單片機(jī)編程語(yǔ)言有哪些選擇

    單片機(jī)(Microcontroller Unit,MCU)編程是指為單片機(jī)編寫程序的過程,這些程序控制單片機(jī)的行為和功能。單片機(jī)廣泛應(yīng)用于嵌入式系統(tǒng),如家用電器、汽車電子、工業(yè)控制等領(lǐng)
    的頭像 發(fā)表于 11-01 14:13 ?860次閱讀

    單片機(jī)怎么寫入程序

    單片機(jī)(Microcontroller Unit,MCU)是一種集成電路芯片,它將計(jì)算機(jī)的CPU、存儲(chǔ)器、輸入/輸出接口等功能集成在一個(gè)芯片上。單片機(jī)廣泛應(yīng)用于嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備中。編寫單片機(jī)
    的頭像 發(fā)表于 10-21 11:21 ?857次閱讀

    單片機(jī)的中斷機(jī)制

    單片機(jī)的中斷機(jī)制是一種重要的處理方式,它允許單片機(jī)在執(zhí)行主程序的過程中,能夠暫停當(dāng)前任務(wù),轉(zhuǎn)而處理外部或內(nèi)部緊急事件。這種機(jī)制極大地提高了系統(tǒng)的響應(yīng)速度和處理能力,使得單片機(jī)在各種應(yīng)用領(lǐng)域中得到廣泛應(yīng)用。以下是對(duì)
    的頭像 發(fā)表于 10-17 18:03 ?910次閱讀

    單片機(jī)燒錄程序用什么軟件

    單片機(jī)燒錄程序是單片機(jī)開發(fā)過程中的一個(gè)重要環(huán)節(jié),涉及到將編寫好的程序代碼通過燒錄器寫入單片機(jī)的ROM中,以實(shí)現(xiàn)對(duì)單片機(jī)的控制。 燒錄器的類型 燒錄器是用于將程序代碼寫入
    的頭像 發(fā)表于 09-02 10:05 ?1534次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序是單片機(jī)開發(fā)過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的存儲(chǔ)器中,使單片機(jī)能夠按照預(yù)定的邏輯執(zhí)行任務(wù)。 一、硬件準(zhǔn)備
    的頭像 發(fā)表于 09-02 09:47 ?1330次閱讀

    單片機(jī)引腳懸空是什么電平

    單片機(jī)引腳懸空是指單片機(jī)的I/O引腳在沒有連接任何外部電路的情況下,引腳的電平狀態(tài)。懸空引腳的電平狀態(tài)取決于單片機(jī)的內(nèi)部結(jié)構(gòu)和外部環(huán)境因素。 單片機(jī)引腳懸空的電平狀態(tài)
    的頭像 發(fā)表于 08-28 09:51 ?2428次閱讀

    UCGUI單片機(jī)源碼

    UCGUI單片機(jī)源碼
    發(fā)表于 07-04 17:11 ?1次下載

    如何系統(tǒng)、科學(xué)地自學(xué)單片機(jī)?

    很多初學(xué)者都會(huì)面臨這個(gè)問題,我想學(xué)習(xí)單片機(jī)、我也想學(xué)好單片機(jī)、我也想系統(tǒng)地學(xué)習(xí)單片機(jī),但是單片機(jī)涉及到的學(xué)科多且雜根本不是三天兩天就能學(xué)完的,很多人都逃脫不了從入門到放棄的怪圈?那么我
    的頭像 發(fā)表于 03-28 08:03 ?1156次閱讀
    如何系統(tǒng)、科學(xué)地自學(xué)<b class='flag-5'>單片機(jī)</b>?

    單片機(jī)是什么?單片機(jī)編程如何入門?

    單片機(jī)其實(shí)是一種很早的叫法了,最開始我們的前輩叫單板機(jī)或者叫單片機(jī),因?yàn)槟莻€(gè)時(shí)候單片機(jī)的處理能力還沒有很強(qiáng),現(xiàn)在我們所用的基本都是微型處理單元,也叫為控制器也稱之為MCU
    的頭像 發(fā)表于 03-28 08:03 ?2114次閱讀
    <b class='flag-5'>單片機(jī)</b>是什么?<b class='flag-5'>單片機(jī)</b>編程如何入門?

    fpga能代替單片機(jī)

    FPGA(現(xiàn)場(chǎng)可編程門陣列)和單片機(jī)在功能和應(yīng)用上各有特點(diǎn)和優(yōu)勢(shì),因此FPGA并不能完全代替單片機(jī)。
    的頭像 發(fā)表于 03-27 14:29 ?975次閱讀

    fpga和單片機(jī)的區(qū)別

    FPGA和單片機(jī)在多個(gè)方面存在顯著的差異:
    的頭像 發(fā)表于 03-14 16:30 ?5269次閱讀

    單片機(jī)定時(shí)器與單片機(jī)計(jì)數(shù)器分析

     從一個(gè)生活中的例程看起:一個(gè)水盆在水龍頭下,水龍沒關(guān)緊,水一滴滴地滴盆中。水滴持續(xù)落下,盆的容量是有限的,過一段時(shí)間之后,水就會(huì)逐漸變滿。錄音機(jī)上的計(jì)數(shù)器多只計(jì)到999…。那么單片機(jī)中計(jì)數(shù)器有多大的容量呢?8031單片機(jī)中有
    發(fā)表于 02-15 16:24 ?589次閱讀

    單片機(jī)的最小系統(tǒng)由什么組成 單片機(jī)的最小系統(tǒng)包括哪些

    單片機(jī)(Microcontroller Unit,MCU)的最小系統(tǒng)包括以下幾個(gè)主要組成部分: 單片機(jī)芯片:單片機(jī)是整個(gè)最小系統(tǒng)的核心部分,它集成了中央處理器(Central Processing
    的頭像 發(fā)表于 02-02 11:27 ?1.1w次閱讀