
把這幾個(gè)功能學(xué)透,你就掌握了單片機(jī)
單片機(jī)的學(xué)習(xí)絕不僅僅是對(duì)一項(xiàng)知識(shí)的掌握。想要學(xué)好單片機(jī),需要從硬件結(jié)構(gòu)、內(nèi)部資源、外設(shè)應(yīng)用等幾個(gè)方面多方位入手。而要想成為一名嵌入式工程師,就要對(duì)單片機(jī)的基礎(chǔ)非常熟悉,并且掌握C語(yǔ)言當(dāng)中各個(gè)功能的初始化、啟動(dòng)、停止各類(lèi)函數(shù)的編寫(xiě)調(diào)試。那么想要掌握單片機(jī)需要從哪幾個(gè)方面入手呢?
1. 數(shù)字I/O的應(yīng)用
在大多數(shù)的單片機(jī)實(shí)驗(yàn)中,跑馬燈實(shí)驗(yàn)正是數(shù)字I/O的典型應(yīng)用,也是跑馬燈的實(shí)驗(yàn)被安排第一個(gè)的原因。通過(guò)將單片機(jī)的I/O引腳位進(jìn)行置位或清零來(lái)點(diǎn)亮或關(guān)閉LED燈,雖然簡(jiǎn)單,但是這就是數(shù)字電路中的邏輯功能。數(shù)學(xué)I/O應(yīng)用的實(shí)驗(yàn)還有按鍵實(shí)驗(yàn),當(dāng)按下某鍵時(shí),某LED燈被點(diǎn)亮。數(shù)字I/O實(shí)驗(yàn)教會(huì)我們單片機(jī)的編程思想,必須首先對(duì)單片機(jī)的相應(yīng)寄存器進(jìn)行配置,以初始化I/O引腳,這樣才能使該引腳具備數(shù)字輸入與輸出功能。單片機(jī)的一個(gè)內(nèi)置或外置功能的使用,就是對(duì)該功能相關(guān)的寄存器進(jìn)行設(shè)置,初始化,而這便是單片機(jī)編程的特點(diǎn)。少則4、5個(gè)函數(shù)搞定,多則十幾行程序,要有耐心,別怕麻煩,所有的單片機(jī)都是這樣。
2. RS232串口通訊
單片機(jī)都有UART接口,這個(gè)簡(jiǎn)單、古老的通訊方式可以與我們PC機(jī)的RS232接口直接連接通訊,當(dāng)然,因?yàn)樗鼈儍烧唠娖竭壿嫴煌?,必須要使用一個(gè)RS232電平轉(zhuǎn)換芯片才能與PC機(jī)連接,例如Max232芯片。
UART接口的使用是非常重要的,通過(guò)這個(gè)接口,我們可以使單片機(jī)與PC機(jī)之間交換信息,“接口”概念的學(xué)習(xí)也便由此引入。使用UART接口也會(huì)學(xué)習(xí)到目前最為簡(jiǎn)單與常用的通信協(xié)議等知識(shí)。對(duì)于無(wú)法在線調(diào)試的單片機(jī),也可以通過(guò)PC機(jī)的串口調(diào)試軟件來(lái)監(jiān)視到單片機(jī)實(shí)驗(yàn)板的數(shù)據(jù)。
3. 定時(shí)器的使用
學(xué)會(huì)定時(shí)器的使用,就可以利用單片機(jī)來(lái)實(shí)現(xiàn)典型的時(shí)序邏輯電路。時(shí)序邏輯電路的應(yīng)用是最強(qiáng)大、最廣泛的。例如,在工業(yè)的控制中,我們讓某個(gè)開(kāi)關(guān)每隔1秒鐘打開(kāi)與關(guān)閉一次。這個(gè)方案可以通過(guò)普通的數(shù)字集成電路實(shí)現(xiàn),也可以通過(guò)PLC來(lái)實(shí)現(xiàn),也可以通過(guò)CPLD或FPGA來(lái)實(shí)現(xiàn),但是只有單片機(jī)的實(shí)現(xiàn)是最簡(jiǎn)單,成本也是最經(jīng)濟(jì)的。定時(shí)器是單片機(jī)內(nèi)部資源里最為重要的一個(gè),更是邏輯與時(shí)間控制實(shí)現(xiàn)的基礎(chǔ)。
4. 中斷
在單片機(jī)軟件設(shè)計(jì)架構(gòu)中,一段程序循環(huán)執(zhí)行是其一個(gè)特點(diǎn),也是一個(gè)弊端。每個(gè)操作指令的執(zhí)行都需要一定的執(zhí)行時(shí)間,如果程序沒(méi)有執(zhí)行到該指令,則該指令的動(dòng)作就不會(huì)觸發(fā),這樣就會(huì)忽略許多快速發(fā)生的事件,例如方波頻率檢測(cè)的上升沿。針對(duì)在單片機(jī)程序正常運(yùn)行時(shí)能夠?qū)ν獠渴录⒓醋龀鲰憫?yīng)而設(shè)計(jì)了中斷功能。當(dāng)中斷功能執(zhí)行時(shí),單片機(jī)優(yōu)先處理中斷程序,當(dāng)中斷處理完成后,再回到單片機(jī)的正常程序執(zhí)行中。中斷的機(jī)理是比較容易理解的,但是什么時(shí)候打開(kāi)中斷,什么時(shí)候關(guān)閉、屏蔽中斷,需要如何配置才能使能中斷的某些功能,中斷里要執(zhí)行哪些程序,這些程序的要滿足哪些要求就需要花些時(shí)間去理解與實(shí)踐了。中斷學(xué)會(huì)后,就可以編寫(xiě)復(fù)雜結(jié)構(gòu)功能的程序,可以一邊閃著小LED燈,一邊掃描著按鍵,一邊發(fā)送著數(shù)據(jù),也可以干著多個(gè)事情……比如,中斷功能可以使單片機(jī)吃著碗里的,看著鍋里的。根據(jù)傳說(shuō)中的8020定律,如果掌握了上面提到的這四步,那么就說(shuō)明已經(jīng)學(xué)會(huì)單片機(jī)80%的內(nèi)容了。
5. I2C,SPI通信
單片機(jī)系統(tǒng)畢竟資源有限,而利用I2C、SPI通訊接口進(jìn)行擴(kuò)展外設(shè)是最常用的方法,也是非常重要的方法。這兩個(gè)通訊接口都是串行通訊接口,典型的基礎(chǔ)實(shí)驗(yàn)就是I2C的EEPROM實(shí)驗(yàn)與SPI的SD卡讀寫(xiě)實(shí)驗(yàn)。
6. 比較、捕獲、PWM功能
比較,捕捉與PWM功能可以使單片機(jī)更加適合電機(jī)控制,信號(hào)檢測(cè),實(shí)現(xiàn)電機(jī)速度與步長(zhǎng)的調(diào)節(jié)。PWM波現(xiàn)在又是LED調(diào)光的主要手段。這里已經(jīng)初步接觸了數(shù)字電路里的模擬電路部分。
7. AD模數(shù)采集
單片機(jī)目前基本都自帶多通道A/D模數(shù)轉(zhuǎn)換器,通過(guò)這些A/D轉(zhuǎn)換器可以單片機(jī)獲取模擬量,用于檢測(cè)電壓、電流等信號(hào)。學(xué)習(xí)時(shí)要分清模擬地與數(shù)字地,參考電壓,采樣時(shí)間,轉(zhuǎn)換速率,轉(zhuǎn)換誤差等重要概念。這一步學(xué)會(huì)了數(shù)字電路控制模擬電路部分,而最簡(jiǎn)單的A/D模數(shù)轉(zhuǎn)換器就是電壓表實(shí)驗(yàn)。
8. 學(xué)習(xí)USB接口、TCP/IP協(xié)議、工業(yè)總線
目前主流的通訊協(xié)議為:
USB協(xié)——下位機(jī)與上位機(jī)高速通訊接口;
TCP/IP——萬(wàn)能的互聯(lián)網(wǎng)使用的通訊協(xié)議;
工業(yè)總線——諸如Modbus,CANOpen等工業(yè)控制各個(gè)模塊之間通訊的協(xié)議。這些都會(huì)應(yīng)用在未來(lái)的項(xiàng)目里,集成入單片機(jī)里的固件,并且也是當(dāng)前產(chǎn)品開(kāi)發(fā)的一個(gè)發(fā)展方向。
歡迎關(guān)注頭條號(hào)“玩轉(zhuǎn)嵌入式”,獲取更多電子設(shè)計(jì)知識(shí)。

單片機(jī)學(xué)習(xí)是很難的,不能速成,你必須承認(rèn)這一點(diǎn),有些號(hào)稱能幫你從入門(mén)到精通,那些大多都是牛皮膏藥,基本上講的都是些入門(mén)的東西,市面上的講單片機(jī)的書(shū)本內(nèi)容基本上八九成是一樣的。學(xué)習(xí)單片機(jī)的視頻,八九成一樣,不同的人講的,主講人的水平高低不同。
而正真高深的單片機(jī)程序處理,你在網(wǎng)上基本上找不到,偶爾能有那么一兩個(gè)高手把自己的一點(diǎn)點(diǎn)心得分享出來(lái),也許你半天都不能領(lǐng)悟其真諦。
正真的高手是這么煉成的?唯有自己日積月累,不斷堅(jiān)持、思考讀成熟的程序,加上自己對(duì)程序的悟性,等到2到3年方可有所造詣。
1、首先我們來(lái)談?wù)凜 基礎(chǔ),單片機(jī)程序開(kāi)發(fā),基本上用的是C 語(yǔ)言,你的 語(yǔ)言學(xué)的怎么樣了,對(duì)于關(guān)鍵詞的使用是否已經(jīng)融會(huì)貫通了,對(duì)于語(yǔ)法規(guī)則是否已經(jīng)掌握。這是一門(mén)實(shí)踐行的知識(shí),沒(méi)有實(shí)踐你的C 語(yǔ)言等于0,他的功能可不是書(shū)上那些例子,輸個(gè)數(shù)做個(gè)加減乘除把結(jié)果輸出。利用他的關(guān)鍵字及語(yǔ)法規(guī)則,勾畫(huà)出無(wú)限的生產(chǎn)力。對(duì)于C 語(yǔ)言的基礎(chǔ)知識(shí)你要達(dá)到那種水平了,當(dāng)你的想法出現(xiàn)的時(shí)候,功能要求已有,你能立刻用C 語(yǔ)言描繪出來(lái)。C 語(yǔ)言只是工具,實(shí)現(xiàn)我們的想法的工具,對(duì)于工具的使用要信手拈來(lái),例如:把一個(gè)字節(jié)數(shù)據(jù)高底位一一兌換、把脈沖數(shù)轉(zhuǎn)換為時(shí)間及檢測(cè)出按鍵的連續(xù)兩次按下等等,看到問(wèn)題的時(shí)候具體的實(shí)現(xiàn)代碼在老海呈現(xiàn)了沒(méi)。
2、工具用熟了以后,我們?cè)搶W(xué)習(xí)什么了了?對(duì)語(yǔ)法熟練以后就應(yīng)該重點(diǎn)學(xué)習(xí)程序設(shè)計(jì)的方法,請(qǐng)大家分清兩個(gè)概念,C 語(yǔ)言只是工具,會(huì)C 語(yǔ)言并代表你會(huì)設(shè)計(jì)程序,程序設(shè)計(jì)能力可分為,首先是能將復(fù)雜的功能要求拆分為若干個(gè)細(xì)小功能,用C 語(yǔ)言描述實(shí)現(xiàn),再將這些小功能用你的C 語(yǔ)言工具串起來(lái)組成我們所需要的復(fù)雜功能。整個(gè)過(guò)程下來(lái)C 語(yǔ)言都只是實(shí)現(xiàn)你想法的工具??吹竭@里你是否還敢用“玩”、“精通”來(lái)形容單片機(jī)嗎,當(dāng)真正進(jìn)入單片機(jī)殿堂的時(shí)候你會(huì)感覺(jué)這是一個(gè)浩瀚無(wú)邊的宇宙,你會(huì)越發(fā)感覺(jué)自己的渺小,只有更好,沒(méi)有最好。
總結(jié)幾點(diǎn)個(gè)人的學(xué)習(xí)的經(jīng)驗(yàn):
C語(yǔ)言與程序設(shè)計(jì)的學(xué)習(xí)是相輔相成的,他們共同進(jìn)步,就如同你的兩只腳,誰(shuí)都不能超過(guò)誰(shuí)很遠(yuǎn)。學(xué)習(xí)單片機(jī)之前請(qǐng)先學(xué)習(xí)C 語(yǔ)言,請(qǐng)不要相信什么零基礎(chǔ)也能學(xué)好,至少20天,要把基礎(chǔ)知識(shí)掌握,在進(jìn)入單片機(jī)學(xué)習(xí),視頻網(wǎng)上一大把,學(xué)會(huì)操作基礎(chǔ)模塊,在這個(gè)階段你可以在網(wǎng)上尋找知識(shí)學(xué)習(xí),將你開(kāi)發(fā)板的模塊程序都練一遍。
當(dāng)你開(kāi)發(fā)板學(xué)完了, 這個(gè)時(shí)候該這么辦了,這就是我今天重點(diǎn)要的。
如果你就是淺嘗輒止,那么你可以說(shuō)自己入門(mén)了,如果你想有所造詣那么你還遠(yuǎn)著了,對(duì)于走過(guò)了這個(gè)階段以后,我對(duì)我的學(xué)生的要求就是“背程序”,就如同別人學(xué)習(xí)英語(yǔ)背文章增強(qiáng)語(yǔ)感。我說(shuō)所的“背程序”,并非死記硬背,屬于一種重復(fù)強(qiáng)化訓(xùn)練,圍繞幾個(gè)主題,①、按鍵讀取;②、數(shù)碼管顯示(重復(fù)計(jì)算顯示代碼) ;③、LCD1602液晶顯示;④、AT24C02讀寫(xiě);⑤、DS1302讀寫(xiě);⑥、D S18B20讀寫(xiě)。每個(gè)項(xiàng)目從建工程到下載成功在20分鐘以內(nèi),最好練到在10分鐘左右。對(duì)于代碼需要精簡(jiǎn)而又有內(nèi)涵,當(dāng)你做好以后能增強(qiáng)你的語(yǔ)感及常規(guī)程序設(shè)計(jì)能力。最后以同樣的方式訓(xùn)練一個(gè)綜合項(xiàng)目——多功能數(shù)字鐘,這個(gè)項(xiàng)目可能需要一個(gè)上午才能做好。這個(gè)過(guò)程的目的很簡(jiǎn)單,增強(qiáng)C 語(yǔ)言工具的使用能力,在單片機(jī)編程這塊,對(duì)于基礎(chǔ)模塊的程序設(shè)計(jì)能力,完成從感覺(jué)自己什么都懂,可要寫(xiě)點(diǎn)什么東西時(shí)又不知如何下手到實(shí)現(xiàn)一些簡(jiǎn)單功能程序能迅速寫(xiě)出來(lái)的轉(zhuǎn)變。這個(gè)方式枯燥乏味但是效果還可以,可以借鑒借鑒。
完成了上述工作,緊接著多練習(xí)綜合項(xiàng)目,這個(gè)時(shí)候這能靠自己,學(xué)程序沒(méi)有別的,只能多練,多想。用你的開(kāi)發(fā)板編寫(xiě):計(jì)算器、電子日歷、電子密碼等各類(lèi)能把你開(kāi)發(fā)板上的資源綜合起來(lái)用的程序。假想就是在做項(xiàng)目,要對(duì)自己提出苛刻的功能要求,切記不多說(shuō)差不多了,要做到完美。
再往下走,完美要回過(guò)頭學(xué)習(xí)單片機(jī)原理,去學(xué)習(xí)匯編,學(xué)習(xí)單片機(jī)的運(yùn)行原理對(duì)你編程有極大的幫助,再把你的C 語(yǔ)言書(shū)拿出來(lái),細(xì)細(xì)的看前幾章節(jié),是時(shí)候該去看看指針了。在程序中簡(jiǎn)單的使用指針。
就這樣往下練吧,估計(jì)至少得年吧時(shí)間。
再往下走,你應(yīng)該去研究指針了,將指針應(yīng)用到你的程序當(dāng)中,它可以給你解決以往你所遇到的很棘手的問(wèn)題。
講到指針,該想到結(jié)構(gòu)體了,我們應(yīng)該去學(xué)習(xí)鏈表了,我們要將簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)應(yīng)用到單片機(jī)了。這個(gè)期間你如果能去學(xué)習(xí)在操作系統(tǒng)上的編程是很有必要的。如在VC 上做簡(jiǎn)單功能界面,Linux 系統(tǒng)編程。這可以讓你看看別人優(yōu)秀代碼,從中吸取經(jīng)驗(yàn),就算看不到源代碼,也可以從別人的函數(shù)所具備的功能上思考的自己的函數(shù)設(shè)計(jì),改善自己的函數(shù),我的很多函數(shù)功能設(shè)計(jì)方式就是這么來(lái)的。
差不多又是一年時(shí)間過(guò)去了。真心希望你堅(jiān)持下來(lái)了,到這個(gè)時(shí)候你基本上已經(jīng)能獨(dú)立解決很多問(wèn)題了。
這個(gè)時(shí)候我們?cè)撊W(xué)習(xí)什么了了,該去學(xué)習(xí)“易經(jīng)經(jīng)”——C 語(yǔ)言描述數(shù)據(jù)結(jié)構(gòu)與算法分析。在程序的世界里,它就是最高的內(nèi)功心法,能在里面學(xué)的一招半式,就可以行走江湖了。這本書(shū)目前我也只是研究過(guò)幾個(gè)章節(jié),在這里面你會(huì)看到操作系統(tǒng)的具體實(shí)現(xiàn),文件系統(tǒng)的設(shè)計(jì)思想等等,各類(lèi)大型程序設(shè)計(jì)設(shè)計(jì)思想。
關(guān)于單片機(jī)學(xué)習(xí),內(nèi)容遠(yuǎn)不止這些,上述只講了單片機(jī)的程序設(shè)計(jì)方面,依據(jù)單片機(jī)的特片還硬件這一塊極為重要,不理解硬件也設(shè)計(jì)不好程序,下次再談?wù)勅绾螌W(xué)習(xí)硬件。對(duì)于8位單片機(jī)你是否想過(guò), 給它裝上一個(gè)操作系統(tǒng),這是我最近一直在思考的問(wèn)題
希望能幫到你!

學(xué)習(xí)單片機(jī)之前,需要有一些基礎(chǔ)知識(shí)的準(zhǔn)備,例如元器件知識(shí)、模擬電路、數(shù)字電路、C語(yǔ)言等這些知識(shí)需要知道一點(diǎn)。這些知識(shí)有一個(gè)直觀的概念就行了,具體的更深入的知識(shí),可以在單片機(jī)學(xué)習(xí)中逐步加深理解和學(xué)習(xí)。
然后,需要根據(jù)所選的單片機(jī),了解該單片機(jī)的主要功能、熟悉其對(duì)應(yīng)的開(kāi)發(fā)環(huán)境;
最后,要有相應(yīng)的單片機(jī)電路板和相應(yīng)的仿真、編程工具,把單片機(jī)程序“燒錄”到電路板上的單片機(jī)內(nèi),根據(jù)設(shè)計(jì)功能,觀察電路板的運(yùn)行是否符合設(shè)計(jì)初衷。
一、知識(shí)準(zhǔn)備
1、元器件知識(shí)
知道基礎(chǔ)元器件的功能和用法,例如要知道電阻的功能主要是限流、分壓,電阻在電路中有串聯(lián)、并聯(lián)、混聯(lián)的接法,知道電容的功能是“隔直通交”,在單片機(jī)電路中,有很多濾波電容。
2、模擬電路知識(shí)
二極管、三極管的基本電路,了解單片機(jī)的電源電路、復(fù)位電路、晶振電路的工作原理。
3、數(shù)字電路
這個(gè)最好多學(xué)一些,因?yàn)閱纹瑱C(jī)本身就是一個(gè)數(shù)字器件,其運(yùn)行原理主要是數(shù)字電路原理。了解各種門(mén)電路,最好能夠熟悉IC數(shù)字芯片的真值表,了解串行通信,IIC通信,SPI通信等。
4、C語(yǔ)言知識(shí)
現(xiàn)在單片機(jī)開(kāi)發(fā)絕大多數(shù)都使用C語(yǔ)言開(kāi)發(fā),需要簡(jiǎn)單了解C語(yǔ)言的基本語(yǔ)法、算術(shù)和邏輯運(yùn)算符,基本程序結(jié)構(gòu)(順序、選擇、循環(huán)等),尤其要知道各種數(shù)據(jù)類(lèi)型所表示的數(shù)值范圍,這個(gè)會(huì)在單片機(jī)編程里面很有用。
二、單片機(jī)和開(kāi)發(fā)環(huán)境選擇
1、單片機(jī)選擇
現(xiàn)在很多人說(shuō)學(xué)單片機(jī)可以直接從cortex m0或m3學(xué)起,我覺(jué)得,如果基礎(chǔ)較弱的話,還是從STC 51單片機(jī)開(kāi)始,還可以選擇AVR單片機(jī)。
為什么推薦這兩種單片機(jī),因?yàn)橐粋€(gè)單片機(jī)環(huán)境要想真正運(yùn)行起來(lái),最終還是需要有專用的編程工具(很多人稱為燒錄工具)將程序“燒錄”到單片機(jī)內(nèi)部,這樣才能真正讓單片機(jī)按照程序設(shè)計(jì)流程運(yùn)行。而這個(gè)專門(mén)工具是特制的,現(xiàn)在STC的51單片機(jī)只需要一根U轉(zhuǎn)串的線就可以將程序“燒錄”到單片機(jī)內(nèi),而AVR單片機(jī)的編程工具非常容易自制,并且成本不超過(guò)20塊錢(qián),至于其它單片機(jī),它們的燒錄工具一是不容易自制,二是價(jià)格較高,所以部特別推薦。
另外就是51單片機(jī)和AVR單片機(jī)的開(kāi)發(fā)資料,學(xué)習(xí)教程在網(wǎng)上最多,這樣當(dāng)學(xué)習(xí)中遇到問(wèn)題的時(shí)候,可以在網(wǎng)上獲取很多經(jīng)驗(yàn)。
2、開(kāi)發(fā)環(huán)境的選擇
基本上每種單片機(jī)都有各自特色的開(kāi)發(fā)環(huán)境,但是這些開(kāi)發(fā)環(huán)境基本都是各自為戰(zhàn),很少有一種開(kāi)發(fā)環(huán)境能夠支持多種單片機(jī)的開(kāi)發(fā)。
在這里推薦2個(gè)開(kāi)發(fā)環(huán)境,
一是51單片機(jī)的KEIL開(kāi)發(fā)環(huán)境,二是IAR開(kāi)發(fā)環(huán)境,IAR開(kāi)發(fā)環(huán)境是目前功能最為強(qiáng)大,支持單片機(jī)種類(lèi)最多的一種開(kāi)發(fā)環(huán)境(IAR支持51單片機(jī),AVR,PIC,MSP430,ARM等幾乎所有主流單片機(jī),但是對(duì)每一種單片機(jī)都有一套開(kāi)發(fā)包,不過(guò)基本開(kāi)發(fā)配置和流程大體相近)。
51單片機(jī)的開(kāi)發(fā)環(huán)境,不用說(shuō)肯定是首選keil,這個(gè)是最早,也是功能最強(qiáng)的51單片機(jī)開(kāi)發(fā)環(huán)境,另外,熟悉了KEIL后,對(duì)于后續(xù)開(kāi)發(fā)MDK也會(huì)有一個(gè)很快的熟悉過(guò)程,因?yàn)镸DK就是脫胎于KEIL的。
AVR單片機(jī)的開(kāi)發(fā)環(huán)境很多,目前用的較為普及的是GCC、ICC AVR,以及AVR STDUIO,這三種的使用教程在網(wǎng)上較多,所以還是推薦這三種。
三、實(shí)戰(zhàn)選擇
目前有三種方式學(xué)單片機(jī),一種是通過(guò)真正的單片機(jī)學(xué)習(xí)板,現(xiàn)在這種學(xué)習(xí)板很多,并且板載的功能也非常多,這是一個(gè)途徑,還有就是通過(guò)單片機(jī)仿真軟件學(xué)習(xí),目前有proteus(支持51,AVR,MSP430,CORTEX等),還有電路仿真軟件multisim也可以仿真51單片機(jī)的運(yùn)行過(guò)程。第三就是自己從零開(kāi)始搭建學(xué)習(xí)板,我當(dāng)年學(xué)AVR的時(shí)候,就是自己買(mǎi)的洞洞板,一步一步焊接出來(lái)一個(gè)學(xué)習(xí)板的。
1、使用單片機(jī)學(xué)習(xí)板學(xué)習(xí)單片機(jī)
這種方式可以不用過(guò)多關(guān)注硬件電路,直接熟悉單片機(jī)編程技能,當(dāng)然,學(xué)習(xí)板上的電路一般都是經(jīng)過(guò)驗(yàn)證的,比較實(shí)用,所以可以直接學(xué)到相應(yīng)電路的工作原理以及電路設(shè)計(jì);
2、使用proteus學(xué)習(xí)單片機(jī)
目前這個(gè)軟件普及度已經(jīng)很高了,并且網(wǎng)上相關(guān)的教程也很多,用這個(gè)軟件學(xué)習(xí)單片機(jī)的一個(gè)好處是不用買(mǎi)學(xué)習(xí)板以及配套的編程工具,還有就是可以自己同時(shí)學(xué)習(xí)電路設(shè)計(jì)和編程技能,但是缺點(diǎn)就是這個(gè)軟件的電路設(shè)計(jì)只是功能上的,具體到電路性能指標(biāo)和各種參數(shù),這個(gè)軟件不能準(zhǔn)確的模擬出來(lái)。不過(guò)作為入門(mén)以及基礎(chǔ)原理的學(xué)習(xí),這個(gè)軟件還是很好的。
3、自己搭建學(xué)習(xí)板
我當(dāng)時(shí)學(xué)習(xí)AVR單片機(jī)的時(shí)候,就是買(mǎi)的洞洞板和各種器件,從單片機(jī)最小系統(tǒng)開(kāi)始搭建,最后焊成了一個(gè)包含串口,串轉(zhuǎn)并,并轉(zhuǎn)串,AD轉(zhuǎn)換,SPI、IIC總線,LCD液晶、數(shù)碼管顯示等各種電路。
這種方式有多種優(yōu)點(diǎn)既可以學(xué)習(xí)編程,還學(xué)會(huì)了電路設(shè)計(jì),又鍛煉了動(dòng)手能力,甚至還學(xué)會(huì)了基礎(chǔ)的電路故障檢查和維修。
不過(guò)這種方法需要很大的耐心和毅力。
四、單片機(jī)學(xué)習(xí)入門(mén)
1、學(xué)會(huì)開(kāi)發(fā)環(huán)境的使用
2、熟悉單片機(jī)最小系統(tǒng)的工作原理
3、熟悉單片機(jī)編程的基本結(jié)構(gòu)、流程、語(yǔ)法

朋友們好,我是電子及工控技術(shù),我來(lái)回答這個(gè)問(wèn)題。對(duì)于單片機(jī)這項(xiàng)技術(shù)如何學(xué)習(xí),很多朋友都說(shuō)出了學(xué)習(xí)的方法。下面我想根據(jù)我學(xué)習(xí)單片機(jī)的一些體會(huì)和朋友們分享一下我是如何學(xué)習(xí)單片機(jī)的。
我認(rèn)為學(xué)習(xí)單片機(jī)需要有一定的知識(shí)儲(chǔ)備
我們都知道單片機(jī)技術(shù)是一個(gè)理論加實(shí)際操作都很強(qiáng)的技術(shù),我在學(xué)單片機(jī)前就已經(jīng)在學(xué)校里學(xué)過(guò)了模擬電路和數(shù)字電路的基本知識(shí),尤其是數(shù)字電路知識(shí)在學(xué)單片機(jī)時(shí)非常重要,這是因?yàn)閱纹瑱C(jī)就是一個(gè)數(shù)字芯片,這個(gè)單片機(jī)引腳在程序“指揮”下只能輸出數(shù)字信號(hào)或者高電平和低電平,我們只有學(xué)習(xí)了基本的數(shù)字電路知識(shí)才能更好地理解單片機(jī)與它的外設(shè)之間之間的關(guān)系。

另外,由于單片機(jī)是需要在程序的驅(qū)動(dòng)下才能完成相應(yīng)控制功能,單片機(jī)的程序就像我們?nèi)祟?lèi)的“思想靈魂”一樣,如果沒(méi)有程序單片機(jī)是“寸步難行”的,什么也控制不了。所以,我們還要有編程語(yǔ)言的知識(shí),我在學(xué)習(xí)單片機(jī)時(shí)是先學(xué)習(xí)了匯編語(yǔ)言,因?yàn)樵趯W(xué)習(xí)匯編語(yǔ)言時(shí)就順帶把單片機(jī)的基本結(jié)構(gòu)掌握了,比如各種寄存器、單片機(jī)工作原理等。然后再學(xué)習(xí)C語(yǔ)言知識(shí),這樣我們?cè)趯W(xué)習(xí)單片機(jī)前就有了一個(gè)相對(duì)完整的知識(shí)儲(chǔ)備了。
我認(rèn)為學(xué)習(xí)單片機(jī)要做好軟件的準(zhǔn)備
單片機(jī)是一個(gè)“軟硬”結(jié)合的控制器,所以學(xué)習(xí)單片機(jī)時(shí)就要先準(zhǔn)備一些必要的軟件,比如編程軟件,我們最常用的是Keil軟件,另外還要有下載軟件,這也是學(xué)習(xí)單片機(jī)必不可少的,我常用的是一種STC的程序下載軟件。

我認(rèn)為學(xué)習(xí)單片機(jī)要做好硬件的準(zhǔn)備
我認(rèn)為學(xué)好單片機(jī)就需要?jiǎng)邮?,?dāng)我們具備了一些單片機(jī)基礎(chǔ)知識(shí)后,動(dòng)手操作才是關(guān)鍵。我在學(xué)習(xí)單片機(jī)時(shí)是自己先按照前輩們的單片機(jī)電路原理圖自己焊接一塊單片機(jī)實(shí)驗(yàn)板,在實(shí)驗(yàn)板上焊接有RS232串口、DS1302時(shí)鐘芯片、DS18B20溫度傳感器、數(shù)碼管、矩陣鍵盤(pán)、A/D芯片、LCD1206液晶顯示屏接口、紅外接收頭等等。

因?yàn)閱纹瑱C(jī)技術(shù)是一個(gè)軟硬結(jié)合的技術(shù),所用編程語(yǔ)言編寫(xiě)的程序我們也叫底層驅(qū)動(dòng)程序,因此我們?cè)诰帉?xiě)程序前就要知道單片機(jī)硬件電路的一些來(lái)龍去脈,當(dāng)我們通過(guò)自己動(dòng)手焊接單片機(jī)電路板后,在編寫(xiě)程序的時(shí)候就會(huì)做到了心里有數(shù)了,在這里我強(qiáng)烈建議想學(xué)習(xí)單片機(jī)朋友們最好自己動(dòng)手焊接一個(gè)電路板,做到“自給自足,豐衣足食”,這樣會(huì)給你的單片機(jī)學(xué)習(xí)之路帶來(lái)很好的體驗(yàn)。

我認(rèn)為學(xué)習(xí)單片機(jī)要有得當(dāng)?shù)姆椒?/h3>
最后我要想說(shuō)的就是學(xué)習(xí)單片機(jī)要有一個(gè)高效的學(xué)習(xí)方法,我的學(xué)習(xí)方法是:以動(dòng)手操作實(shí)踐為主,再輔以適當(dāng)?shù)睦碚摚凑铡叭唛_(kāi)”的分配原則,就是用三分時(shí)間精力去學(xué)習(xí)理論,用七分時(shí)間精力去實(shí)踐操作。學(xué)習(xí)編程時(shí)要先模仿后自己獨(dú)立編寫(xiě),這樣會(huì)少走彎路,在學(xué)習(xí)資料上我認(rèn)為單片機(jī)數(shù)據(jù)手冊(cè)就是最好的介紹材料,我們完全可以利用,比如在數(shù)據(jù)手冊(cè)里可以學(xué)到I/O口的應(yīng)用、定時(shí)器和中斷的使用、I2C,SPI通信總線等知識(shí)。因此學(xué)習(xí)單片機(jī)沒(méi)有一條放之四海而皆準(zhǔn)的方法,只有找到適合自己的才是最好的方法。

以上就是我對(duì)這個(gè)問(wèn)題的看法。歡迎朋友們參與討論,敬請(qǐng)關(guān)注電子及工控技術(shù),感謝點(diǎn)贊。

如何學(xué)習(xí)單片機(jī)?對(duì)于這個(gè)問(wèn)題,芯片哥作為過(guò)來(lái)人,希望能給到一些中肯的建議。
這種“如何學(xué)習(xí)單片機(jī)”的類(lèi)似問(wèn)題,相信應(yīng)該是一個(gè)想入門(mén),但又不知如何下手的小白提出來(lái)的。那芯片哥就認(rèn)為你是單片機(jī)小白的身份,去解釋回答了。
單片機(jī),作為一種微處理的類(lèi)型,雖然它屬于硬件電路,但它的功能卻是由軟件開(kāi)發(fā)完成的。對(duì)于這點(diǎn),需要對(duì)單片機(jī)做個(gè)整體性的概念認(rèn)識(shí)。
只有對(duì)單片機(jī)的電路特點(diǎn)認(rèn)識(shí)清楚了,我們才能去學(xué)好單片機(jī),才會(huì)知道如何去學(xué)習(xí)單片機(jī),而不是像個(gè)丈二的和尚、摸不著頭腦,到處一片迷茫。

單片機(jī)
OK,了解完單片機(jī)的功能,它是由軟件開(kāi)發(fā)完成的之后,接下來(lái)學(xué)習(xí)的重點(diǎn)就非常清晰明了了。芯片哥總結(jié)為3個(gè)方面。
01
學(xué)習(xí)單片機(jī),肯定是需要學(xué)習(xí)單片機(jī)的內(nèi)部結(jié)構(gòu),盡管它的外表只有一些封裝好的引腳。單片機(jī)的外部引腳,只是內(nèi)部電路的延伸,只起到電路連接的作用。
單片機(jī)的內(nèi)部電路,都需要學(xué)習(xí)哪些內(nèi)容呢?
主要包括ADC采集電路、定時(shí)器電路、時(shí)鐘電路、通信電路、IO引腳電路、中斷電路、電源電路、存儲(chǔ)電路、看門(mén)狗電路和復(fù)位電路等等。
學(xué)習(xí)這些,是為了掌握單片機(jī)的每個(gè)內(nèi)部電路的功能,以及它們都是可以做些什么的。舉例說(shuō)明
- ADC采集電路,主要的電路功能是完成對(duì)模擬信號(hào)的采集,比如常用的傳感器信號(hào);
- 定時(shí)器電路,主要的電路功能是定時(shí)作用,比如在涉及到與時(shí)間有關(guān)聯(lián)的信號(hào)處理,就需要使用單片機(jī)的定時(shí)器電路;
- 通信電路,主要的電路功能是實(shí)現(xiàn)信號(hào)的通信,常用的通信方式包含USB通信、UART通信、SPI通信以及IIC通信等等;
當(dāng)然,每個(gè)型號(hào)的單片機(jī)內(nèi)部電路不盡相同,作為初學(xué)入門(mén)者,是不是需要將所有型號(hào)的單片機(jī)都需要學(xué)習(xí)一遍呢?
答案是否定的。
不管什么型號(hào)的單片機(jī),它都是萬(wàn)變不離其宗的。無(wú)非是引腳個(gè)數(shù)多一些少一些,內(nèi)部電路功能簡(jiǎn)單一些復(fù)雜一些罷了,其核心的本質(zhì)是沒(méi)有區(qū)別的。
基于此,芯片哥向單片機(jī)的初學(xué)者,建議開(kāi)始學(xué)習(xí)單片機(jī),應(yīng)當(dāng)首選51系列型號(hào)的單片機(jī)。原因是51系列的單片機(jī),功能雖然簡(jiǎn)單,但齊全。

51系列型號(hào)的單片機(jī)
俗話說(shuō),麻雀雖小,但五臟俱全。
放到單片機(jī)領(lǐng)域,也同樣適合51系列型號(hào)的單片機(jī)。這或許也是大中專院校為什么選擇51系列型號(hào)的單片機(jī)作為教材的原因之一吧。
02
了解完單片機(jī)的基本電路功能,相當(dāng)于進(jìn)入單片機(jī)的大門(mén)了。但這還遠(yuǎn)遠(yuǎn)不夠,之所以想學(xué)習(xí)單片機(jī),關(guān)鍵還是在于學(xué)習(xí)單片機(jī)的軟件開(kāi)發(fā)。
軟件開(kāi)發(fā),才是學(xué)習(xí)單片機(jī)的核心。
C語(yǔ)言作為單片機(jī)軟件編程領(lǐng)域的首選語(yǔ)言,這個(gè)主要是因?yàn)樗讓W(xué)且易懂,更重要的是學(xué)習(xí)C語(yǔ)言,根本不需要任何基礎(chǔ)。芯片哥可以毫不夸張地負(fù)責(zé)任告訴你
只要認(rèn)識(shí)26個(gè)英文字母abcde.....,會(huì)計(jì)算10以內(nèi)的加減乘除,就可以學(xué)習(xí)單片機(jī)的C語(yǔ)言。

軟件編程
真的有這么簡(jiǎn)單?
它真的有這么簡(jiǎn)單,一學(xué)就會(huì)。對(duì)于入門(mén)初學(xué)者,C語(yǔ)言真的非常適合,這也是C語(yǔ)言流行的原因之一。
03
學(xué)習(xí)單片機(jī)的電路和C語(yǔ)言軟件編程,這些都是停留在理論層面上,距離項(xiàng)目的開(kāi)發(fā),還有很長(zhǎng)的一段路程。
畢竟學(xué)習(xí)單片機(jī)是為了能夠?qū)嶋H地開(kāi)發(fā)設(shè)計(jì)項(xiàng)目,而不是僅僅停留在紙上談兵。
具體怎么做呢?
芯片哥送你6個(gè)字,那就是“勤練習(xí),多開(kāi)發(fā)”。

設(shè)計(jì)開(kāi)發(fā)項(xiàng)目
勤練習(xí),多開(kāi)發(fā),就是告訴單片機(jī)的初學(xué)者,切勿天天抱著一本單片機(jī)的書(shū)籍,或者看一些網(wǎng)絡(luò)上的視頻教程。就是只看不練習(xí),不去動(dòng)手自己寫(xiě)代碼,沒(méi)日沒(méi)夜似地看這個(gè)書(shū),請(qǐng)教那個(gè)人,看網(wǎng)絡(luò)學(xué)習(xí)的視頻,這些都是徒勞無(wú)益。
只有動(dòng)手去參與單片機(jī)有關(guān)的項(xiàng)目,切身地去體會(huì)單片機(jī)的軟件編程,經(jīng)常性地練習(xí),遇到問(wèn)題再去查找資料,這樣經(jīng)過(guò)一段時(shí)間后,少則3個(gè)月,多則半年時(shí)間,單片機(jī)的學(xué)習(xí)就可以告一段落了。
剩下的就是在工作中,通過(guò)項(xiàng)目開(kāi)發(fā)的實(shí)踐,不斷積累單片機(jī)的開(kāi)發(fā)能力。
末尾
按照芯片哥給出的方法,先學(xué)習(xí)單片機(jī)的內(nèi)部電路(硬件)和C語(yǔ)言的軟件編程,有了相關(guān)理論基礎(chǔ)之后,就可以“勤練習(xí),多開(kāi)發(fā)”了,這樣就能較好地完成對(duì)單片機(jī)系統(tǒng)地學(xué)習(xí)了。
最后芯片哥希望,學(xué)習(xí)完單片機(jī)后,能夠收獲一門(mén)技術(shù)能力的同時(shí),也能收獲一份高薪穩(wěn)定的工作。
本文由【芯片哥】原創(chuàng)撰寫(xiě),喜歡就關(guān)注芯片哥,后面會(huì)定期更新有關(guān)于電子元器件和芯片,包括一些電子產(chǎn)品項(xiàng)目開(kāi)發(fā)案例的相關(guān)內(nèi)容。
#單片機(jī)# #芯片#

應(yīng)用領(lǐng)域:
消費(fèi)電子:洗衣機(jī)、電冰箱、空調(diào)機(jī)、IC卡、電子設(shè)備等。
通訊方面:調(diào)制解調(diào)器、交換機(jī)等。
工業(yè)自動(dòng)化:數(shù)據(jù)采集和測(cè)控。
武器設(shè)備:軍艦、導(dǎo)彈、航天飛機(jī),飛機(jī)等。
儀器:示波器、信號(hào)源、萬(wàn)用表等。
學(xué)習(xí)基礎(chǔ)
編程語(yǔ)言:
C語(yǔ)言,匯編
學(xué)習(xí)書(shū)本:
深入了解計(jì)算機(jī)系統(tǒng)
微機(jī)原理
數(shù)字電路
模擬電路
單片機(jī)原理及應(yīng)用
C和指針
如何學(xué)習(xí)
1.首先把常見(jiàn)的基礎(chǔ)知識(shí)通一遍,第一遍不需要理解的很明白,第二遍或者第三遍的時(shí)候開(kāi)始深耕細(xì)作,開(kāi)始全面的實(shí)踐學(xué)習(xí),這個(gè)階段C語(yǔ)言基礎(chǔ)要弄牢固。
2.單片機(jī)常見(jiàn)的術(shù)語(yǔ)以及編譯的環(huán)境開(kāi)始涉獵,未開(kāi)展的實(shí)際項(xiàng)目做準(zhǔn)備
3.開(kāi)始找一款常用的單片機(jī)實(shí)踐,串口通訊,IO操作,終端控制,這些常見(jiàn)的控制模式都可以著手去做,可以在網(wǎng)上買(mǎi)開(kāi)發(fā)板自己嘗試在里面填寫(xiě)代碼,尋找編寫(xiě)代碼的感覺(jué)。
無(wú)論進(jìn)行到那一步持之以恒的堅(jiān)持,傻傻的堅(jiān)持才是決定你最后能不能真正做到單片機(jī)的編程。
有編程疑惑可以關(guān)注大學(xué)生編程指南,一起學(xué)習(xí)編程,互相監(jiān)督學(xué)習(xí)

這個(gè)問(wèn)題菜農(nóng)還是很有發(fā)言權(quán)的,因?yàn)椴宿r(nóng)可謂搞單片機(jī)的“革命先烈”。
要自學(xué)單片機(jī)最好先從51單片機(jī)開(kāi)始入門(mén)。
由于嵌入式領(lǐng)域的編程和PC端編程不同,它必須要有開(kāi)發(fā)板輔助,而且要有一定的硬件知識(shí),例如門(mén)電路、定時(shí)器、看門(mén)狗、I2C、SPI、串口、并口、LED、LCD等等知識(shí),否則很難入門(mén)和進(jìn)步。
軟件調(diào)試先從keill開(kāi)始,編程語(yǔ)言要略知匯編語(yǔ)句,建議用C語(yǔ)言編寫(xiě)程序。還要學(xué)習(xí)CRC校驗(yàn)和一些通訊協(xié)議。當(dāng)然最好會(huì)畫(huà)板子布線等。
最好到嵌入式技術(shù)論壇去學(xué)習(xí),看大家在某個(gè)問(wèn)題的解決方法和經(jīng)驗(yàn)。
建議到中國(guó)電子網(wǎng)21IC,它是國(guó)內(nèi)最大的工程師網(wǎng)站之一。
當(dāng)然你也會(huì)在那里找到菜農(nóng)早期的文章和論據(jù)。有不會(huì)的可向菜農(nóng)或站內(nèi)高人請(qǐng)教。

熟悉單片機(jī)的原理、結(jié)構(gòu);學(xué)好數(shù)電、模電,為設(shè)計(jì)電路打好基礎(chǔ);熟練使用C語(yǔ)言,多學(xué)習(xí)他人的程序;對(duì)操作系統(tǒng)原理有一定的了解,Protel有一定的基礎(chǔ);培養(yǎng)實(shí)際動(dòng)手調(diào)試電路的能力。一般可以通過(guò)專業(yè)的書(shū)籍和課程進(jìn)行持之以恒的學(xué)習(xí),注意理論與實(shí)踐并重,遇到問(wèn)題耐心檢查并適當(dāng)投資購(gòu)買(mǎi)實(shí)驗(yàn)器材。

砸碎了電腦,一片一片的了解。

學(xué)習(xí)單片機(jī)可以有兩個(gè)方面選擇。一是硬件,二是軟件。其實(shí)相對(duì)于沒(méi)說(shuō),這樣說(shuō)吧,可以偏硬件或偏軟件。
另外,學(xué)是一碼事,會(huì)用又是一碼事。
硬件主要學(xué)單片機(jī)本身知識(shí)、接口知識(shí)、傳感器知識(shí)。這里涉及到模擬信號(hào)、數(shù)字信號(hào)的轉(zhuǎn)換及處理。所以學(xué)硬件的話,要學(xué)會(huì)模擬電路、數(shù)字電路基本知識(shí),還有學(xué)習(xí)電路知識(shí) ,要學(xué)習(xí)A/D、D/A轉(zhuǎn)換知識(shí)。關(guān)鍵是傳感器知識(shí)以及傳感器信號(hào)的處理,還有電氣傳動(dòng)方面的知識(shí)(輸出驅(qū)動(dòng)等)等等。了解軟件如匯編、指令系統(tǒng)、C語(yǔ)言等。
軟件主要學(xué)單片機(jī)指令系統(tǒng)、開(kāi)發(fā)步驟以及排查、調(diào)試、技巧方法,掌握匯編、C或其他語(yǔ)言,對(duì)操作系統(tǒng)、算法、數(shù)據(jù)結(jié)構(gòu)有比較深的了解,最好學(xué)習(xí)PID算法、模糊控制等等。
哈哈太多了,不說(shuō)了。使用單片機(jī)是一門(mén)綜合系統(tǒng),絕大多數(shù)情況下單靠一個(gè)人是沒(méi)法完成的。
可以學(xué)學(xué),買(mǎi)個(gè)調(diào)試板學(xué)起來(lái)快一些。主要是實(shí)踐!

謝邀,從事單片機(jī)教學(xué)多年,雖說(shuō)不夠精通,但帶領(lǐng)學(xué)生入門(mén)單片機(jī)足夠了。說(shuō)實(shí)話,一個(gè)從沒(méi)有接觸過(guò)計(jì)算機(jī)語(yǔ)言的初學(xué)者,因?yàn)闆](méi)有程序的概念,學(xué)習(xí)單片機(jī)是有一定難度的。但如果方法得當(dāng),則能再最短時(shí)間內(nèi)入門(mén),也會(huì)為之后的深入學(xué)習(xí)打好一個(gè)良好的基礎(chǔ)。以下我將從幾方面來(lái)總結(jié)入門(mén)單片機(jī)需要做的幾步。
首先,選好設(shè)備。一臺(tái)電腦是必備,計(jì)算機(jī)可用來(lái)寫(xiě)程序,也可用來(lái)做仿真。最好能買(mǎi)一塊單片機(jī)的開(kāi)發(fā)板,最簡(jiǎn)單的那種,包含流水燈,數(shù)碼管,按鍵,顯示屏即可,淘寶網(wǎng)價(jià)錢(qián)不等,100不到就能買(mǎi)到好的。這樣能接觸到實(shí)物,直接用實(shí)物進(jìn)行調(diào)試,更易于單片機(jī)的學(xué)習(xí)和開(kāi)發(fā)。
其次,學(xué)會(huì)安裝并使用軟件,包括程序軟件和仿真軟件。程序軟件現(xiàn)在已經(jīng)發(fā)展到Keil 4版本了,仿真軟件proteus的使用也非常方便,布置流水燈,電子表,點(diǎn)陣,1602,12864等都可以練習(xí)。其實(shí)我覺(jué)得用仿真軟件入門(mén)單片機(jī)足夠了。
再次是學(xué)好匯編或者c語(yǔ)言,我們的學(xué)生一直在使用c語(yǔ)言編程,因?yàn)槲矣X(jué)得它更簡(jiǎn)潔,靈活。
最后就是認(rèn)真努力的堅(jiān)持學(xué)習(xí)了,我認(rèn)為以項(xiàng)目式學(xué)習(xí)為佳,項(xiàng)目由簡(jiǎn)至煩,可以從一個(gè)發(fā)光二極管的點(diǎn)亮開(kāi)始,接著是閃爍,流水燈的制作,獨(dú)立按鍵使用,矩陣按鍵使用,數(shù)碼管靜態(tài)顯示動(dòng)態(tài)顯示,電子表的設(shè)計(jì),跑馬燈等等,其實(shí)到數(shù)碼管后你已經(jīng)初步入門(mén)初具程序思想了。
說(shuō)一千道一萬(wàn),堅(jiān)持到底不放棄,找對(duì)方法,你很快就會(huì)發(fā)現(xiàn)單片機(jī)的研究其樂(lè)無(wú)窮。

單片機(jī),其實(shí)就是微控制器,也可以認(rèn)為是小型CPU,它是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。學(xué)習(xí)單片機(jī)可以先從最簡(jiǎn)單的8位的51系列的單片機(jī)開(kāi)始,熟悉51單片機(jī)的內(nèi)部資源,學(xué)習(xí)匯編語(yǔ)言給單片機(jī)編程,或者直接學(xué)習(xí)C語(yǔ)言對(duì)單片機(jī)編程,使用匯編語(yǔ)言可以更好的了解單片機(jī)。了解以后,學(xué)習(xí)畫(huà)pcb,自制電路板,要?jiǎng)邮种谱鲉纹瑱C(jī)的最小系統(tǒng),編譯下載編寫(xiě)的程序到單片機(jī)。學(xué)會(huì)一款單片機(jī),1、可以熟練操作任意I/O輸出高低電平,檢測(cè)任意I/O的輸入電平情況。2、定時(shí)器、計(jì)數(shù)器的操作。3、中斷的使用。4、AD/DA的使用。5、串口的使用。以上這些都熟練操作的話,就可以做一些小項(xiàng)目、小制作了。單片機(jī)的學(xué)習(xí)一定要勤動(dòng)手,動(dòng)手能力至關(guān)重要,平時(shí)可以用萬(wàn)用板或者熱轉(zhuǎn)印方式自制PCB板,焊接、調(diào)試電路,再學(xué)習(xí)了解一些常用的硬件的協(xié)議SPI、IIC等。只要熟練掌握了一種單片機(jī),其他的單片機(jī)就大同小異了,單片機(jī)學(xué)的差不多了,就可以學(xué)習(xí)ARM。哈哈,要活到老學(xué)到老,興趣是最好的老師,要多動(dòng)手制作作品,會(huì)激勵(lì)自己學(xué)習(xí)的動(dòng)力。

硬件只是一個(gè)平臺(tái),應(yīng)用才是關(guān)鍵。與單片機(jī)結(jié)合最緊密的就是驅(qū)動(dòng),一旦驅(qū)動(dòng)完成之后,主要工作時(shí)間還是花在具體應(yīng)用任務(wù)開(kāi)發(fā)上面,而這部分與硬件己經(jīng)關(guān)系不大了。

1.知識(shí)儲(chǔ)備:模電、數(shù)電,英文,計(jì)算機(jī)原理、計(jì)算機(jī)語(yǔ)言知識(shí),元器件原理,常用接口時(shí)序及工作原理……學(xué)上得越多當(dāng)然越有用;
2.興趣+學(xué)習(xí)能力:會(huì)學(xué)新知識(shí),會(huì)看別人代碼,會(huì)問(wèn)有經(jīng)驗(yàn)的人,善于思考沉下心來(lái);
3.動(dòng)手能力:學(xué)校里的知識(shí)遠(yuǎn)遠(yuǎn)不夠,有機(jī)會(huì)拿仿真器,寫(xiě)代碼,焊板子,搭環(huán)境,Debug,用儀器,做項(xiàng)目,調(diào)產(chǎn)品!

先從51單片機(jī)入門(mén),其它的都是相通的。
1、先把基礎(chǔ)知識(shí)理解透,比如中斷,定時(shí)器,AD/DA等基本知識(shí)弄透。
2、從keil入手,加上proteus或買(mǎi)塊開(kāi)發(fā)板,著手編寫(xiě)些小程序,實(shí)現(xiàn)簡(jiǎn)單的功能。
3、做些小課題,從電路原理到制板,調(diào)試程序,最后實(shí)現(xiàn)目標(biāo)功能,然后總結(jié)。
其實(shí),所有聽(tīng)起來(lái)高大上的東西并不那么高大上,電子技術(shù)是一門(mén)注重基礎(chǔ)知識(shí)的專業(yè),把基礎(chǔ)打好,在工作中積累經(jīng)驗(yàn)即可。

單片機(jī)最基礎(chǔ)就是89C51,8位單片機(jī),首先你應(yīng)該有C需要的基礎(chǔ),以前還有一種匯編語(yǔ)言,現(xiàn)在基本不太用了,我建議你可以以如下的方法學(xué)習(xí),緊緊是自己的觀點(diǎn):
1.首先從最基本的單片機(jī)51出發(fā),或者你也可以從高級(jí)單片機(jī)MSP430.STM32.ARM等都可以,先進(jìn)行系統(tǒng)的理論學(xué)習(xí),再進(jìn)行實(shí)踐學(xué)習(xí);
2.買(mǎi)一個(gè)開(kāi)發(fā)版,學(xué)完一個(gè)章節(jié),在開(kāi)發(fā)板上實(shí)踐,程序可以先在網(wǎng)上下載,慢慢自己熟悉了,可以自己編寫(xiě),熟悉邏輯算法!

首先呢,可以去找一本初級(jí)入門(mén)的書(shū),比如郭天祥的51單片機(jī),這個(gè)就很適合新手來(lái)學(xué)習(xí),其次呢每學(xué)習(xí)一些內(nèi)容可以進(jìn)行一些實(shí)踐操作,用keil軟件和proteus進(jìn)行一些仿真的操作,最后呢,如果覺(jué)得書(shū)本比較枯燥的話,可以去bilibili找點(diǎn)相關(guān)的視頻去學(xué)習(xí)

會(huì)C,把廠商給的固件庫(kù)搞懂,就行了。做的多用的多了自然就會(huì)一步一步了解外設(shè)寄存器,慢慢就可以不用固件庫(kù)自己配置寄存器。然后你就會(huì)慢慢發(fā)現(xiàn)內(nèi)核不在自己掌握之中是多么無(wú)奈,很自然的你就會(huì)向底層探索,進(jìn)而掌握匯編語(yǔ)言的用法,再過(guò)五年必略有小成。

單片機(jī)的種類(lèi)很多,51是最基礎(chǔ)的,所以單片機(jī)學(xué)習(xí)最好的就是從51學(xué)起,我大學(xué)的時(shí)候課程也是從51開(kāi)始的,51不僅容易上手,而且在現(xiàn)在也是很實(shí)用的,但是接觸下來(lái)你會(huì)發(fā)現(xiàn)51的功能畢竟有限,IO口太少,學(xué)好51后,你就可以接觸更高級(jí)的芯片,比如AVR單片機(jī),他比51在功能上有很大提升
1:你要有學(xué)習(xí)的熱情及興趣,因?yàn)閱纹瑱C(jī)的學(xué)習(xí)最重要的是多練,練,這個(gè)過(guò)程會(huì)很枯燥
2:熟悉掌握單片機(jī)的各引腳功能、區(qū)別、能自己動(dòng)手搭一個(gè)最小系統(tǒng)
3:編寫(xiě)程序最好使用c語(yǔ)言,從最簡(jiǎn)單的流水燈,跑馬燈,數(shù)碼管等練起
4:學(xué)會(huì)用keil和PROTEUS這兩個(gè)軟件,前者寫(xiě)程序,后者仿真
5:多實(shí)踐,合理安排時(shí)間,遇到問(wèn)題耐心檢查

興趣最重要,因?yàn)檫@是讓你堅(jiān)持學(xué)習(xí)下去的內(nèi)因。一旦有了興趣便不會(huì)輕易放棄!另外就是基礎(chǔ)了,主要是數(shù)字電路,對(duì)于理解單片機(jī)很有幫助!C語(yǔ)言是必須的,提高編程能力,首先就要多讀別人的代碼,單個(gè)語(yǔ)句的意思,多個(gè)語(yǔ)句在一起能干什么,要能讀懂。理論學(xué)習(xí)方法因人而異吧,有些人看視頻,有些人看書(shū),只要能理解就好。個(gè)人喜歡看書(shū),自己去體會(huì),琢磨?;纠碚摬畈欢嗔?,搞個(gè)開(kāi)發(fā)板練練吧。記住一句話,書(shū)讀百遍其意自現(xiàn),只要用心沒(méi)有學(xué)不會(huì)的。

多練習(xí)多練習(xí)還是多練習(xí)!

結(jié)合我個(gè)人對(duì)單片機(jī)的理解以及個(gè)人經(jīng)歷來(lái)回答該問(wèn)題。
我是2009年(大三)開(kāi)始接觸單片機(jī),那時(shí)買(mǎi)了一個(gè)51開(kāi)發(fā)板,學(xué)習(xí)視頻看的是郭天祥老師的《十天學(xué)會(huì)51單片機(jī)》,沒(méi)有想到的是2015年在北京我竟然在郭天祥老師的公司海克智動(dòng)親眼見(jiàn)到了郭老師本人,還挺激動(dòng)的那會(huì),他們公司的一款空氣質(zhì)量檢測(cè)儀用的就是我當(dāng)時(shí)公司飛思卡爾的一款單片機(jī),一上來(lái)就跑題了,^_^,趕緊回來(lái)。
我覺(jué)得初學(xué)者在學(xué)了C語(yǔ)言和數(shù)電、模電后就可以學(xué)習(xí)單片機(jī)了,最快的學(xué)習(xí)方式帶著一個(gè)明確的項(xiàng)目需求,有目標(biāo)的去學(xué)習(xí),當(dāng)你親自動(dòng)手完成一個(gè)項(xiàng)目后,你就真正的入門(mén)了。當(dāng)然對(duì)大部分人來(lái)說(shuō),可能并沒(méi)有一個(gè)明確的項(xiàng)目需求,甚至連單片機(jī)到底有什么用都不清楚,那們剛開(kāi)始你可以找一個(gè)好的視頻或者一本好的書(shū),邊學(xué)邊動(dòng)手做實(shí)驗(yàn),什么跑馬燈啊、數(shù)碼管啊、按鍵啊、串口通信啊等這些基礎(chǔ)的實(shí)驗(yàn)先掌握,最好是自動(dòng)手敲一遍代碼,并按照自己的想法去做一定的修改,在這個(gè)過(guò)程中你肯定會(huì)遇到問(wèn)題,你要想盡一切辦法去解決,并把其中的原理弄清楚,一定不能囫圇吞棗。如果你C語(yǔ)言不熟,正好借著學(xué)習(xí)單片機(jī)把C語(yǔ)言也能好好學(xué)了。
對(duì)單片機(jī)有了初步的熟悉后,建議親自動(dòng)手畫(huà)一塊板子,用Altium Designer之類(lèi)的軟件就可以,然后可以花幾十元在嘉立創(chuàng)投個(gè)板,回來(lái)后自己手工焊接兩塊調(diào)試,最起碼把基礎(chǔ)的GPIO、UART、IIC、SPI功能調(diào)通,如果你自己做的板子可以正常的運(yùn)行,同時(shí)里面是你自己寫(xiě)的代碼,那感覺(jué)絕對(duì)很爽。有了這么一次成功的體驗(yàn),你對(duì)單片機(jī)的感情一定進(jìn)一步加深。也許你會(huì)說(shuō)我又不想做硬件干嘛要學(xué)習(xí)畫(huà)板子焊接啊,但是我還是建議你去實(shí)踐一次,因?yàn)閱纹瑱C(jī)是一個(gè)軟硬件關(guān)聯(lián)度非常高的行業(yè),就算你將來(lái)工作不畫(huà)板子不焊接,多一項(xiàng)技能和經(jīng)歷總是沒(méi)壞處吧,不然每次聽(tīng)別人說(shuō)什么封裝、幾層板啊等這些名詞,你不懂總是很難受吧。話說(shuō)我當(dāng)時(shí)我就是沒(méi)有自己去畫(huà)板,后來(lái)工作后老覺(jué)得少了一塊,于是又從頭彌補(bǔ)了這塊缺失的東西,雖然我現(xiàn)在不做硬件(我現(xiàn)在做產(chǎn)品經(jīng)理),因?yàn)槲易约鹤哌^(guò)這個(gè)流程,所以和硬件工程師溝通起來(lái)就比較順暢,也清楚整個(gè)環(huán)節(jié)的工作量。
有了上述經(jīng)歷,就差不多可以用單片機(jī)來(lái)進(jìn)行產(chǎn)品開(kāi)發(fā)了,不同的產(chǎn)品、不同的行業(yè)對(duì)單片機(jī)的使用有著較大的差異,比如在消費(fèi)類(lèi)產(chǎn)品中,可能比較關(guān)注產(chǎn)品的低功耗特性,在工業(yè)產(chǎn)品中,可能會(huì)使用一些高級(jí)的外設(shè)如網(wǎng)口等,這就涉及到網(wǎng)絡(luò)協(xié)議棧,而通常網(wǎng)絡(luò)協(xié)議棧是搭配著RTOS一起使用的,你可能得學(xué)習(xí)RTOS;在汽車(chē)電子行業(yè),可能會(huì)經(jīng)常使用CAN總線,那么你需要了解CAN總線。還有一些產(chǎn)品會(huì)使用USB,你還得熟悉USB。這里說(shuō)的低功耗、網(wǎng)絡(luò)、RTOS、USB、CAN相對(duì)上述的GPIO、UART、IIC、SPI屬于更復(fù)雜的外設(shè)或功能,如果要精通需要花費(fèi)更多的時(shí)間。
對(duì)一個(gè)產(chǎn)品來(lái)說(shuō),單片機(jī)可以看做一個(gè)工具,本質(zhì)是它是為產(chǎn)品的功能服務(wù)的,除了單片機(jī)本身相關(guān)的技能,你同時(shí)需要掌握的是單片機(jī)之上的行業(yè)的知識(shí),讓單片機(jī)真正的為你所用,產(chǎn)生更大的價(jià)值。

單片機(jī)(Microcontrollers)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。
單片機(jī)誕生于20世紀(jì)70年代。所謂單片機(jī)是利用大規(guī)模集成電路技術(shù)把中央處理單元(Center Processing Unit,也即常稱的CPU)和數(shù)據(jù)存儲(chǔ)器(RAM)、程序存儲(chǔ)器(ROM)及其他I/O通信口集成在一塊芯片上,構(gòu)成一個(gè)最小的計(jì)算機(jī)系統(tǒng),再加上了中斷單元,定時(shí)單元及A/D轉(zhuǎn)換等更復(fù)雜、更完善的電路,使得單片機(jī)的功能越來(lái)越強(qiáng)大,應(yīng)用更廣泛[1]?,F(xiàn)在更多單片機(jī)的發(fā)展已經(jīng)進(jìn)入了嵌入式系統(tǒng)時(shí)代, 由于制造工藝的進(jìn)步,有如 VHDL、RTOS、CPLD、FPGA、DSP、ARM等這一系列可編程器件的體積越來(lái)越小、成本越來(lái)越低,而功能是越來(lái)越能滿足人們的需要。自上世紀(jì) 80年代以來(lái),單片機(jī)技術(shù)在我國(guó)各個(gè)控制領(lǐng)域得到了廣泛應(yīng)用,各個(gè)世界半導(dǎo)體公司都非常看好中國(guó)這個(gè)龐大的市場(chǎng)而紛紛到中國(guó)來(lái)投資建廠,如在蘇州就有日本的瑞薩、松下、美國(guó)的快捷等半導(dǎo)體公司在中的生產(chǎn)廠地。同時(shí)面對(duì)這一技術(shù)的不斷發(fā)展,我國(guó)大部分高校都已經(jīng)把單片機(jī)方面的課程作為學(xué)生的必修課,這為我國(guó)近些年來(lái)的科技、工業(yè)控制等方面的發(fā)展培養(yǎng)了大量人才,而且社會(huì)對(duì)此方面的人才需求還在不斷的增加。面對(duì)如此情況,作為在校學(xué)生,又該從何學(xué)起?如何學(xué)好這門(mén)課程呢?又怎樣才能不讓自己學(xué)了等于沒(méi)學(xué)呢?本文在多年實(shí)踐的基礎(chǔ)上,介紹自已的一些感受和經(jīng)驗(yàn)。
1.理解單片機(jī)的結(jié)構(gòu)
對(duì)于一個(gè)初學(xué)者,最迷糊的就是對(duì)單片機(jī)芯片里面的結(jié)構(gòu)的理解,小小的一個(gè)芯片為何能完成如此神奇的功能。
第一次從事電子方面的工作,也總對(duì)那黑黑的芯片里面感到不可思意的神奇。直到有一天,在檢修一臺(tái)日本二手電子市場(chǎng)里買(mǎi)來(lái)的程控交換機(jī)時(shí),發(fā)現(xiàn)里面有一塊黑東西上的黑膠已經(jīng)裂開(kāi),把它撬開(kāi)一看,里面就是一塊電路板,上面焊滿了密密麻麻的電子零件。終于有點(diǎn)明白,原來(lái)芯片也可以這樣做成。當(dāng)然當(dāng)時(shí)所見(jiàn)的那塊電路板是不能被稱之為芯片的,那只是日本的電子制造公司為了防止別人抄襲而把整個(gè)電路板密封起來(lái)或其它原因,只引出幾個(gè)的引腳與其它電路連接。不過(guò)它可以讓人聯(lián)想到芯片的基本結(jié)構(gòu)與此相類(lèi)似,如果把那些內(nèi)眼看得見(jiàn)的電子零件再縮小一千倍或更小以至于能把所有電子零件做在一個(gè)硅片上,那也就成了名副其實(shí)的芯片了。我們不防以圖1所示的電路及電路板來(lái)做一個(gè)生動(dòng)形象的介紹。該圖是一個(gè)直流馬達(dá)可以正反兩個(gè)方向轉(zhuǎn)動(dòng)的電路,做成電路板并焊好電子元件后,經(jīng)測(cè)試沒(méi)有問(wèn)題就可以用黑膠(通常采用酚醛樹(shù)脂等材料)把所有電子元件封起來(lái),只留六個(gè)引腳來(lái)與外部電路連接,這樣看起來(lái)就好像是一個(gè)芯片。
知道了一般芯片的原理,同樣可以更進(jìn)一步想象單片機(jī)為什么會(huì)執(zhí)行邏輯運(yùn)算等功能,這就牽涉到數(shù)字電路和模擬電路的知識(shí)。其實(shí)不管一個(gè)單片機(jī)的功能是如何的強(qiáng)大,其只不過(guò)是把許多以微米,甚至是納米為單位級(jí)的數(shù)字的和模擬電子器件組成。要做到對(duì)單片機(jī)內(nèi)部結(jié)果真正的了解,還必須得先要有很扎實(shí)的電路基礎(chǔ)、模擬電路、數(shù)字電路等方面的知識(shí),否則可能就是空中樓閣。
2.理清邏輯思維
學(xué)習(xí)單片機(jī)是最重要的一點(diǎn)就是不能糊涂,不能把邏輯關(guān)系搞得亂七八糟。對(duì)于初學(xué)單片機(jī)時(shí),要學(xué)會(huì)把一個(gè)程式的邏輯性關(guān)系用流程圖的形式清楚的表示出來(lái)。至于用來(lái)編寫(xiě)程式的單片機(jī)的語(yǔ)言是很簡(jiǎn)單的,不要把它想象得很神秘,不管是匯編語(yǔ)言、C語(yǔ)言、還是更高級(jí)的VC++和圖示化語(yǔ)言(如LABVIEW),都只不過(guò)是把我們清楚的邏輯思維告訴單片機(jī)處理器,并指令它將要被如何進(jìn)行邏輯操作。把單片機(jī)的指令看得很重要應(yīng)該是我們大家在學(xué)習(xí)單片機(jī)時(shí)的一個(gè)最大的誤區(qū),老是擔(dān)心指令記不住、不會(huì)用,這也是學(xué)習(xí)單片機(jī)還沒(méi)入門(mén)、上路的主要表現(xiàn)。其實(shí)這樣有什么擔(dān)心的呢,記不住就不要強(qiáng)求好了,把指令放在旁邊,當(dāng)把邏輯關(guān)系清理好之后,再來(lái)對(duì)著指令表確定哪個(gè)邏輯關(guān)系由哪些指令來(lái)完成,當(dāng)一條指令運(yùn)用得幾次后,根本就用不著擔(dān)心不知道指令不會(huì)用了。退一步講,即使真的記不得指令,參照書(shū)本的指令用法也完全可行,現(xiàn)在的知識(shí)量是海量,全把所學(xué)的知識(shí)死記在腦子里肯定會(huì)把腦袋漲破。在寫(xiě)程序時(shí),只要程序的邏輯關(guān)系調(diào)理清楚了,寫(xiě)起來(lái)就好比做簡(jiǎn)單的翻譯工作,把邏輯關(guān)系翻譯成計(jì)算機(jī)語(yǔ)言來(lái)表示。3對(duì)微觀世界的想象曾經(jīng)在設(shè)計(jì)電路板時(shí),為了讓線路中的電流能流暢的通過(guò)線路,為了所設(shè)計(jì)的電路板能滿足各種測(cè)試條件下的安全標(biāo)準(zhǔn),如UL標(biāo)準(zhǔn)要求最長(zhǎng)的電源地線不能過(guò) 0.02歐姆(其測(cè)試條件是在20A的電流情況下測(cè)量它的功率P=I2R)。如果假如是0.02歐姆,通以20A的電流,那這條線路的發(fā)熱功率將會(huì)是 8W。把電流看作是我們宏觀世界里的水,線路就好比一條水溝。要讓水在水溝里怎么流,這理所當(dāng)然是很容易控制的了。如水在急轉(zhuǎn)彎的地方會(huì)起漩渦,會(huì)對(duì)急轉(zhuǎn)達(dá)彎的溝的對(duì)面產(chǎn)生沖擊。同樣在電路板上的線路如果存在急轉(zhuǎn)彎的情況,電流也會(huì)引起渦流,也會(huì)對(duì)線路的拐點(diǎn)處有一個(gè)沖擊作用而產(chǎn)生輻射。這樣一來(lái),在理解了這一原理之后,每一次電路板的設(shè)計(jì)完成之后,所有的測(cè)試都能一次通過(guò)。可見(jiàn)把微觀世界想象成宏觀世界相類(lèi)似的事物或過(guò)程是非常有幫助的?,F(xiàn)代電子世界,特別是微電子,要想看清他的真面目,只有在高清昕度的顯微鏡下才能看到他的外形,可是即使了解了它的外形,也只不過(guò)是知其然而不知其所以然,它的工作過(guò)程根本無(wú)法看得到。
現(xiàn)在單片機(jī)結(jié)構(gòu)越來(lái)越復(fù)雜,集成度越來(lái)越高,存儲(chǔ)量越來(lái)越大,將來(lái)還可能采用分子級(jí)電子晶體管呢。它的運(yùn)行速度也是如此的越來(lái)越快,現(xiàn)在已經(jīng)是采用納秒級(jí)來(lái)定義它的運(yùn)行時(shí)間了,最長(zhǎng)的運(yùn)行一條指令的時(shí)間最多不過(guò)一兩個(gè)微秒,簡(jiǎn)直就是比一閃而過(guò)還要少好多好多。既然我們可以在空間上利用放大鏡把外形放大后來(lái)了解,那么同樣可以在時(shí)間上把時(shí)間拉長(zhǎng)來(lái)解。不訪把一微秒當(dāng)作時(shí)一分鐘或一小時(shí)來(lái)理解,這樣我們就不難理解CPU就如人一樣在處理某一條指令。比如指令 “MOV A,01H”就是CPU把數(shù)據(jù)01H送到A累加器,在這個(gè)運(yùn)送的過(guò)程就如人搬運(yùn)東西的過(guò)程,這個(gè)過(guò)程的處理時(shí)間就是CPU處理一個(gè)指令的時(shí)間,通常稱之為指令周期。有些時(shí)候單片機(jī)會(huì)出現(xiàn)對(duì)某個(gè)操作處理的時(shí)間不夠,如進(jìn)行數(shù)據(jù)采集時(shí),被采集的信號(hào)相對(duì)于單片機(jī)處理時(shí)間比較快就會(huì)出現(xiàn)數(shù)據(jù)遺失的情況,這就要求單片機(jī)的運(yùn)行速度更快。如果沒(méi)有這處微觀時(shí)間的概念,就很難理解怎么會(huì)出現(xiàn)這種情況。
那么如何編程呢?有人說(shuō)先畫(huà)流程圖,然后再寫(xiě)程序、調(diào)試。我想,這是數(shù)學(xué)比我好的人說(shuō)的,我的方法如下:
1、用文字描述自己需要的功能
2、拆分出各個(gè)功能,用文字描述每個(gè)功能是如何實(shí)現(xiàn)的
3、完成各個(gè)功能的程序,并做好測(cè)試,對(duì)于我來(lái)說(shuō),如果了解單片機(jī)的工作方式,那么編寫(xiě)程序其實(shí)就是把漢語(yǔ)翻譯成匯編語(yǔ)言。
4、修改每個(gè)功能模塊的程序,盡量讓程序簡(jiǎn)短,并且預(yù)留好和其他功能銜接的功能(接口、變量等)
5、合并簡(jiǎn)單功能模塊,復(fù)雜功能逐一合并,每次合并做好程序備份,以便糾錯(cuò)
6、如果上述工作做的足夠好,那么可以直接得到想要的結(jié)果,我的程序往往都是寫(xiě)完了就可以用,這是建立在部分模塊程序的完美基礎(chǔ)之上的。
如果是設(shè)計(jì)了獨(dú)一無(wú)二的作品,比如說(shuō)我的立方光(我是獨(dú)立設(shè)計(jì)的原理和程序,不管是新版還是舊版),那就在第一條補(bǔ)充一條:構(gòu)思,這需要你對(duì)單片機(jī)很了解,預(yù)想如何實(shí)現(xiàn),會(huì)遇到什么樣的問(wèn)題,以及解決的方案。立方光我構(gòu)思了2個(gè)月,真正做實(shí)物的時(shí)間,只有一周。等到了新版立方光問(wèn)世,我也是用了三周構(gòu)思,一周做實(shí)物。
學(xué)習(xí)c語(yǔ)言
通過(guò)一段時(shí)間的學(xué)習(xí),我認(rèn)識(shí)到了匯編語(yǔ)言的優(yōu)越性,也認(rèn)識(shí)到它的缺點(diǎn),這點(diǎn)我們稍后再說(shuō),先說(shuō)一下我現(xiàn)在學(xué)習(xí)c語(yǔ)言的情況。
因?yàn)橹坝辛俗鰧?shí)物和編程的基礎(chǔ),我就通過(guò)項(xiàng)目來(lái)學(xué)習(xí)C,比如,做一個(gè)溫度顯示,用到了18B20,就自己百度資料,至于程序,我就找了開(kāi)發(fā)板上現(xiàn)成的(說(shuō)到這,買(mǎi)個(gè)開(kāi)發(fā)板還是很必要的,要的是程序)。第一次接觸C編程,void是啥都不懂,那就百度吧,可以說(shuō),一個(gè)程序,我要百度很久來(lái)理解里面的內(nèi)容,不懂就是問(wèn)師弟(他們現(xiàn)在是學(xué)C的),差不多一天的時(shí)間(包括查資料),程序也就完成了,當(dāng)然,我還優(yōu)化了原程序,自己改寫(xiě)后的程序比以前更簡(jiǎn)短,占用RAM更少,因?yàn)橹笆菍W(xué)匯編的,一眼就看得出,程序改如何優(yōu)化。
以上就是我的學(xué)習(xí)經(jīng)驗(yàn)了,在這里我還是建議大家,要先學(xué)匯編語(yǔ)言,這沒(méi)壞處,比如我,因?yàn)橛袇R編的基礎(chǔ),學(xué)起c來(lái)就覺(jué)得很上手,特別是自己可以寫(xiě)出更優(yōu)化的程序。但有人說(shuō),匯編難學(xué),就算學(xué)了,以后編程也用不到。那么我要說(shuō),我的立方光程序就是匯編的,怎么用不到了?很多單片機(jī)的參考資料,也都是以匯編作為原始資料的,你不懂匯編,怎么學(xué)習(xí)新的功能?學(xué)了匯編后,你會(huì)知道,單片機(jī)可以做哪些事情,哪些事情不能做,以及如何做好一件事情,這是單純學(xué)C的人體會(huì)不到的。
說(shuō),如何才能優(yōu)化程序、寫(xiě)出最短的程序,那必須先要對(duì)單片機(jī)有足夠的了解,而學(xué)習(xí)單片機(jī)的內(nèi)部原理,是非匯編不可的。加上有人學(xué)單片機(jī)是為了向嵌入式進(jìn)階,那么學(xué)習(xí)匯編就是更是必不可少的了。C語(yǔ)言的優(yōu)勢(shì)我就不多少了,現(xiàn)在幾乎都是在用C編程,我最近在學(xué)習(xí)C編程,也體會(huì)到了C強(qiáng)大,但這不代表我以前學(xué)的匯編就浪費(fèi)了,比如stc的eeprom程序,官方給的就是匯編,可實(shí)際來(lái)說(shuō),寫(xiě)成C更好,如果你不懂匯編,自然也無(wú)法翻譯這些程序,談何C的應(yīng)用?關(guān)于這兩種語(yǔ)言的話題,我就不再往下說(shuō)了,免得又引起口水戰(zhàn),如果想學(xué)單片機(jī),我建議學(xué)C,如果你想學(xué)好單片機(jī),那就先學(xué)匯編再學(xué)C,這就我給初學(xué)者的建議。最后要說(shuō)的是,匯編編程,非常鍛煉人的思維,這也就是為什么都說(shuō)匯編難學(xué)了,如果你在匯編上有一定的編程能力,那么再掌握其他編程語(yǔ)言的時(shí)候,學(xué)習(xí)過(guò)程就會(huì)變得很容易。
學(xué)習(xí)單片機(jī)的其它幾個(gè)注意點(diǎn):
1 .理論與實(shí)踐并重
對(duì)一個(gè)初學(xué)單片機(jī)的人來(lái)說(shuō),如果按教科書(shū)式的學(xué)法,上來(lái)就是一大堆指令、名詞,學(xué)了半天還搞不清這些指令起什么作用,也許用不了幾天就會(huì)覺(jué)得枯燥乏味以致半途而廢。所以學(xué)習(xí)與實(shí)踐結(jié)合是一個(gè)好方法,邊學(xué)習(xí)、邊演練,循序漸進(jìn),這樣用不了幾次就能將所用到的指令理解、吃透、扎根于腦海,甚至 “ 根深蒂固 ” 。也就是說(shuō),當(dāng)你學(xué)習(xí)完幾條指令后 ( 一次數(shù)量不求多,只求懂 ) ,接下去就該做實(shí)驗(yàn)了,通過(guò)實(shí)驗(yàn),使你感受到剛才的指令產(chǎn)生的控制效果,眼睛看得見(jiàn) ( 燈光 ) 、耳朵聽(tīng)得到 ( 聲音 ) ,更能深刻理解指令是怎樣轉(zhuǎn)化成信號(hào)去實(shí)現(xiàn)控制的,通過(guò)實(shí)驗(yàn)看到自己所學(xué)的成果不僅有一種成就感也能提升你對(duì)單片機(jī)的興趣。說(shuō)句實(shí)在話,單片機(jī)與其說(shuō)是學(xué)出來(lái)的,還不如說(shuō)是做實(shí)驗(yàn)練出來(lái)的,何況做實(shí)驗(yàn)本身也是一種學(xué)習(xí)過(guò)程。因此邊學(xué)邊練的學(xué)習(xí)方法,效果特別好。
2 .合理安排時(shí)間持之以恒
學(xué)習(xí)單片機(jī)不能 “ 三天打魚(yú)、兩天曬網(wǎng) ” ,要有持之以恒的毅力與決 4 心。學(xué)習(xí)完幾條指令后,就應(yīng)及時(shí)做實(shí)驗(yàn),融匯貫通,而不要等幾天或幾個(gè)星期之后再做實(shí)驗(yàn),這樣效果不好甚至前學(xué)后忘。另外要有打 “ 持久戰(zhàn) ” 的心理準(zhǔn)備,不要興趣來(lái)時(shí)學(xué)上幾天,無(wú)興趣時(shí)涼上幾星期。學(xué)習(xí)單片機(jī)很重要的一點(diǎn)就是持之以恒。
3 .遇到問(wèn)題耐心檢查
單片機(jī)有軟硬件兩方面的內(nèi)容,有時(shí)一個(gè)程序怎么調(diào)都不出效果,然而從理論分析卻又是對(duì)的,這是就要仔細(xì)找原因了,學(xué)習(xí)單片機(jī)經(jīng)常碰到很多問(wèn)題,有時(shí)一兩天都不能解決,這是就要有耐心,從底層找起,相信每找出一個(gè)錯(cuò)誤都會(huì)有一個(gè)新的收獲。切不可輕言放棄。
4 .對(duì)只短暫學(xué)過(guò)一遍的知識(shí),充其量只比浮光掠影稍好。因此,較好的方法是過(guò)一段時(shí)間后 (1-2 個(gè)月 ) 再重新學(xué)一遍,學(xué)過(guò)的知識(shí)要經(jīng)常運(yùn)用,這樣反復(fù)循環(huán)幾次就能徹底弄懂消化,永不忘卻。
5 .要進(jìn)行適當(dāng)投資購(gòu)買(mǎi)實(shí)驗(yàn)器材及書(shū)籍資料
單片機(jī)技術(shù)含金量高,一旦學(xué)會(huì)后,給你帶來(lái)的效益當(dāng)然也高,無(wú)論是應(yīng)聘求職還是自起爐灶開(kāi)廠辦公司,其前景都光明無(wú)限。因此在學(xué)習(xí)時(shí)要舍得適當(dāng)投資購(gòu)買(mǎi)必要的學(xué)習(xí)、實(shí)驗(yàn)器材。另外還要經(jīng)常去科技圖書(shū)店看看,購(gòu)買(mǎi)一些適合自己學(xué)習(xí)、提高的書(shū)籍。一本好的書(shū)籍真的很重要,可以隨時(shí)翻閱,隨時(shí)補(bǔ)充不懂或遺忘的知識(shí)。
學(xué)習(xí)使用單片機(jī)就是理解單片機(jī)硬件結(jié)構(gòu),以及內(nèi)部資源的應(yīng)用,在匯編或C語(yǔ)言中學(xué)會(huì)各種功能的初始化設(shè)置,以及實(shí)現(xiàn)各種功能的程序編制。
希望這些文字或多或少的給初學(xué)者一些幫助,早日入門(mén)!
下面推薦一些學(xué)習(xí)的工具
軟件方面方面, 51 單片機(jī)用的是 KEIL 軟件,這個(gè)軟件在學(xué)校圖書(shū)館軟件下載和其他網(wǎng)站上都有,具體用法自己查找相關(guān)資料, AVR 的軟件就比較多了,我用的是 CVAVR ,另外還有 ICCAVR 等多款編譯軟件,這要看個(gè)人喜好了,建議有了一定的 51 基礎(chǔ)再學(xué)。另外就是燒寫(xiě)軟件,燒寫(xiě)軟件的作用就是將編譯器生成的 HEX 文件燒寫(xiě)至單片機(jī)里,這要配合下載線實(shí)用,如果有并口的話最好用并口下載線,軟件最好用廣州雙龍的 SLISP 軟件,如果是筆記本沒(méi)有并口的話則要自己買(mǎi)一個(gè)下載器了,名稱為 USBASP ,網(wǎng)上電子市場(chǎng)有賣(mài) 20 塊錢(qián)左右,軟件會(huì)隨光盤(pán)自帶。
硬件方面,首先是要有單片機(jī),對(duì)于單片機(jī)有一點(diǎn)要注意, 51 單片機(jī)最好買(mǎi) 89S51 、 89S52 這兩種型號(hào),上面我所說(shuō)的燒寫(xiě)程序是 ISP 方式,這兩種單片機(jī)支持 ISP 下載,所以如果買(mǎi)其他型號(hào)的燒寫(xiě)程序可能會(huì)不太方便, AVR 單片機(jī)常用的就是 ATmega16L 其它型號(hào)的區(qū)別也不是很大,甚至有些兼容。至于單片機(jī)開(kāi)發(fā)板,目前的價(jià)格都很貴,從一百到幾百不等,不過(guò)像上次學(xué)校里廣告的那個(gè)六十多塊錢(qián)的最好還是免了,沒(méi)什么作用。能買(mǎi)一塊當(dāng)然好,沒(méi)有的話也不要緊,自己動(dòng)手買(mǎi)個(gè)電路板搭一下也很方便,引出 ISP 接口,燒寫(xiě)程序十分容易,然后將 I/O 口引出擴(kuò)展也很方便。

這個(gè)上大學(xué)期間學(xué)習(xí)過(guò),最好是買(mǎi)一本單片機(jī)的書(shū)籍,可以按照書(shū)籍里面的例子照著手動(dòng)輸入到編輯軟件里面,同時(shí)呢可以上網(wǎng)搜一些入門(mén)教程,最好是能買(mǎi)一套開(kāi)發(fā)工具,沒(méi)必要買(mǎi)那種貴的,重在上手練習(xí),入門(mén)后就感覺(jué)比較簡(jiǎn)單了

用心刻苦,虛心求教,自律堅(jiān)持,多讀多看,溫故知新,如此可成矣!

相關(guān)回答很多問(wèn)題,
1.建議不要學(xué)習(xí)最基礎(chǔ)的51類(lèi)的,實(shí)用性和擴(kuò)展性差,未來(lái)進(jìn)階也不方便,而且這個(gè)產(chǎn)品已經(jīng)是淘汰的產(chǎn)品了。學(xué)習(xí)的難度也很大。
2.學(xué)習(xí)最新的,未來(lái)趨勢(shì)的產(chǎn)品。學(xué)一些比較新的32位的單片機(jī)機(jī),可以做更復(fù)雜的東西,而它的基礎(chǔ)跟51的基本上是差不多的。
3.學(xué)習(xí)開(kāi)源產(chǎn)品,會(huì)有長(zhǎng)遠(yuǎn)發(fā)展。 解決 一個(gè)問(wèn)題不是說(shuō)自己能力有多強(qiáng),能寫(xiě)出多好的代碼來(lái)解決這個(gè)問(wèn)題,而是更多的是你能否找到相應(yīng)合適的資源,有更少的時(shí)間把問(wèn)題解決掉。開(kāi)源的產(chǎn)品會(huì)在巨人的肩膀上看,世界很快你就能爬到更高的高度。
4.學(xué)習(xí)高階如32位,或者能上系統(tǒng)的
51能力有限,硬件作為基礎(chǔ)知識(shí),或者說(shuō)做一些玩意兒,也很重要是在系統(tǒng)上。.
5.學(xué)習(xí)帶平臺(tái)資源的,如liteos alios
開(kāi)放式的平臺(tái)系統(tǒng)小巧內(nèi)容,功能強(qiáng)大,而且實(shí)用性極高,對(duì)接一些平臺(tái)資源很方便。
6.高中低均有涉獵最好
從開(kāi)發(fā)產(chǎn)品的角度上來(lái)講,高中低三檔都應(yīng)該有所涉獵,這個(gè)決定于你做一件事情的思路和遠(yuǎn)見(jiàn)。
7.低端可選arduino ,多選跟IOT相關(guān)的
國(guó)外的開(kāi)源平臺(tái)會(huì)給你全新的認(rèn)識(shí)。當(dāng)你想解決問(wèn)題的時(shí)候,一個(gè)非常著名的硬件方案,前人甚至已經(jīng)做過(guò),你只需要在他基礎(chǔ)上改一下,改成自己的應(yīng)用即可。
8.最好跨過(guò)單片機(jī),做操作系統(tǒng),軟件比硬件有錢(qián)途。
單純的硬件系統(tǒng)價(jià)值不高,而且它的難度系數(shù)在整個(gè)生態(tài)鏈中屬于不高不低的一一環(huán),但是他煩心事情一點(diǎn)不比其他地方少,倒不如直接去做操作系統(tǒng)Linux。

認(rèn)真學(xué)習(xí)

先問(wèn)問(wèn)自己是興趣還是工作需要?
如果是興趣建議看些單片機(jī)體系架構(gòu)的書(shū)籍,再進(jìn)行練手。
如果是為了工作,建議先從簡(jiǎn)單模塊入手,但一定要做到對(duì)改模塊絕對(duì)的熟悉,熟悉過(guò)程中不斷問(wèn)自己為什么要這么做?你的收貨就會(huì)越來(lái)越大,其次不斷的閱讀相關(guān)書(shū)籍。

作為一個(gè)資深的開(kāi)發(fā)告訴你,最好的學(xué)習(xí)方式就是開(kāi)發(fā)板入門(mén)。書(shū)只需要輔助。

盡最大努力把接口電路弄明白,就可以輕松了。甚至于各種協(xié)議(你自己編),多個(gè)單片機(jī)通信也不成問(wèn)題。

森山,10多年的硬件開(kāi)發(fā)經(jīng)驗(yàn),做過(guò)的板卡數(shù)不清有多少塊,做過(guò)量產(chǎn)的產(chǎn)品也涉及到各個(gè)行業(yè),也做過(guò)不少失敗的項(xiàng)目。他用自己的經(jīng)驗(yàn)告訴大家,如何系統(tǒng)的學(xué)習(xí)單片機(jī)。
01.需要一塊開(kāi)發(fā)板——讓單片機(jī)動(dòng)起來(lái)
買(mǎi)一塊開(kāi)發(fā)板,按照配套的demo程序,自己改改,讓外設(shè)動(dòng)起來(lái),比如OLED顯示內(nèi)容,電機(jī)啟停、調(diào)速,溫濕度采集等等。這一步是為了讓你體會(huì)到,單片機(jī)如何通過(guò)編程實(shí)現(xiàn)對(duì)硬件的操作。
這樣的開(kāi)發(fā)板太多了,建議從STM32入手,原因有二:一是資料最全,開(kāi)發(fā)環(huán)境比較友好,而且今后在產(chǎn)品中使用也比較多;二是開(kāi)發(fā)板都不貴,而且最好選外設(shè)多的,帶顯示,帶通信接口的開(kāi)發(fā)板。
即使一開(kāi)始不懂,開(kāi)發(fā)板配套的學(xué)習(xí)包,足夠你學(xué)一陣子了,STM32官方也有現(xiàn)成的Cubemx工具來(lái)幫你生成基礎(chǔ)代碼。
02.自己設(shè)計(jì)一個(gè)小demo——掌握基本外設(shè)
我建議有硬件設(shè)計(jì)能力的,可以自己設(shè)計(jì)制作一款開(kāi)發(fā)板,盡量多的加入不同類(lèi)型的外設(shè),因?yàn)橐院竽阊邪l(fā)產(chǎn)品,就是基于這些外設(shè)的應(yīng)用邏輯組合。然后一個(gè)個(gè)移植外設(shè)驅(qū)動(dòng),當(dāng)然更建議自己寫(xiě)驅(qū)動(dòng),驅(qū)動(dòng)寫(xiě)得好能最大程度發(fā)揮硬件的性能。
受限于單片機(jī)的性能都比較一般,基礎(chǔ)的外設(shè)的連接方式大致有這些:IO、I2C、SPI、AD\DA、UART、CAN、RGB888……等這些低速接口,有的也帶USB。
等你玩轉(zhuǎn)了這些,以后升級(jí)到更強(qiáng)的平臺(tái),那么高速接口學(xué)習(xí)起來(lái)也只是工作量的問(wèn)題,大同小異。
在移植和寫(xiě)驅(qū)動(dòng)的過(guò)程中,要學(xué)會(huì)看datasheet,spec。雖然一個(gè)簡(jiǎn)單的芯片規(guī)格書(shū)就是幾十上百頁(yè),但并不是你都要去看懂的,只要知道提取自己有用的信息,比如I2C設(shè)備,它的總線最高頻率,你在做時(shí)序控制時(shí)不能超過(guò)它的上限。
在調(diào)試過(guò)程中,你一定會(huì)遇到非常細(xì)節(jié)的問(wèn)題,這時(shí)候,借助一定的工具和手段,可以讓你變得更加高效,比如學(xué)會(huì)用示波器去看數(shù)據(jù)波形,學(xué)會(huì)看時(shí)序,分析通信協(xié)議,用萬(wàn)用表去檢測(cè)基本的故障。
下面視頻是用STM32通過(guò)對(duì)步進(jìn)電機(jī)和電磁鐵的控制,來(lái)實(shí)現(xiàn)紡織機(jī)機(jī)頭的功能。盡管我也做了多年開(kāi)發(fā),在遇到新的外設(shè)時(shí),調(diào)試還是花了不少精力。參數(shù)是調(diào)出來(lái)的,有時(shí)候就差幾十us的延時(shí),性能就相差很多,所以在研發(fā)的過(guò)程中一定要耐心:
03.學(xué)著做一個(gè)完整的小產(chǎn)品——產(chǎn)品思維
前2步的基礎(chǔ),新手的你已經(jīng)大致有信心了。接來(lái)下可以做一些設(shè)備的聯(lián)動(dòng),實(shí)現(xiàn)一個(gè)產(chǎn)品的基礎(chǔ)功能,一個(gè)簡(jiǎn)單的單機(jī)設(shè)備。舉個(gè)例子,通過(guò)溫濕度監(jiān)測(cè),來(lái)控制繼電器,繼電器外加電熱絲或加熱裝置,并且實(shí)時(shí)顯示該溫度值,這就是一個(gè)溫度控制的產(chǎn)品了。
這些設(shè)計(jì)不難的,難的是在這一步里你要有一定的產(chǎn)品思維了。要列出你這個(gè)產(chǎn)品的需求,解決了什么痛點(diǎn),根據(jù)明確的需求去選擇相應(yīng)的單片機(jī)方案,你要知道實(shí)現(xiàn)這樣的功能,需要選擇什么樣的技術(shù)方案,綜合還要考慮成本。
這里面的信息量和變數(shù)其實(shí)非常大,比如你要設(shè)計(jì)一款帶有線網(wǎng)絡(luò)的產(chǎn)品,那么你是選擇自帶RMII接口的單片機(jī),還是通過(guò)增加一個(gè)串口轉(zhuǎn)網(wǎng)絡(luò)的模組來(lái)實(shí)現(xiàn)?這可能涉及到你需要通信的網(wǎng)絡(luò)速度,也要考慮綜合成本,以及開(kāi)發(fā)的難易程度。
有時(shí)候,這需要權(quán)衡產(chǎn)品本身的硬件成本,和你的開(kāi)發(fā)周期,并不是一味追求硬件成本最優(yōu),如果出貨量不大的產(chǎn)品或項(xiàng)目,應(yīng)該更傾向于選擇自己熟悉的單片機(jī)平臺(tái),這樣開(kāi)發(fā)周期最短,人力消耗最低,避免撿了芝麻,丟了西瓜的情況發(fā)生,因?yàn)楹芏囗?xiàng)目,時(shí)間要求是很緊迫的。
做產(chǎn)品,實(shí)現(xiàn)功能很簡(jiǎn)單,但整體的可靠性、穩(wěn)定性、兼容性是很難的,這個(gè)問(wèn)題主要討論單片機(jī),所以產(chǎn)品其他延伸的話題就不展開(kāi)了。
04.讓你的單片機(jī)連接到全世界——嘗試通信
現(xiàn)在很多產(chǎn)品都物聯(lián)網(wǎng)化了,進(jìn)一步的,你可以去研究基于單片機(jī)的有線、無(wú)線通信方式,最簡(jiǎn)單的通過(guò)串口連接WIFI、GPRS模組,學(xué)習(xí)MQTT等物聯(lián)網(wǎng)通信協(xié)議實(shí)現(xiàn)單片機(jī)與互聯(lián)網(wǎng)的連接。
MQTT協(xié)議基于json,即使完全不懂的人,學(xué)半天也就會(huì)了,上手比較容易,PC端有很多客戶端可以直接用,適合信息量不大、實(shí)時(shí)性要求不高的數(shù)據(jù)采集、遠(yuǎn)程控制。
通信模組和方式就很多了,WIFI、Zigbee、BT、Lora、GPRS、Lora、NB、4G/5G、433等各種小無(wú)線,以后可以專門(mén)寫(xiě)一篇來(lái)介紹這些通信方式的不同應(yīng)用場(chǎng)景。
之所以把通信這塊單獨(dú)拎出來(lái),因?yàn)橥ㄐ抛屓f(wàn)物互聯(lián),有了更多可玩性和可能性,讓冰冷的單片機(jī)成為有想象力的產(chǎn)品。
最后的總結(jié):做了越多的產(chǎn)品就越覺(jué)得,沒(méi)有一個(gè)產(chǎn)品是簡(jiǎn)單的,容易的,希望大家耐心一點(diǎn),打好基礎(chǔ),后面的路子就會(huì)很寬。
除了以上4點(diǎn),后面遇到更復(fù)雜的項(xiàng)目,可以上RTOS、MBED等輕量化,適合單片機(jī)的操作系統(tǒng)。大家不要一味想著去搞linux,單片機(jī)一直在迭代,現(xiàn)在性能強(qiáng)的單片機(jī)還是很多的,而實(shí)際工業(yè)上有很多需求,單片機(jī)綽綽有余,性價(jià)比極高,開(kāi)發(fā)周期短,穩(wěn)定,這些都是很好的。
關(guān)于如何系列的學(xué)習(xí),還推薦閱讀:
硬件工程師技能樹(shù)
電子專業(yè)新生指南
嵌入式學(xué)習(xí)路線+資料放送
學(xué)長(zhǎng),我們電子專業(yè)的畢業(yè)后究竟是做啥的?
嵌入式 Arm Linux 入門(mén)必讀書(shū)籍推薦硬件學(xué)習(xí)選擇開(kāi)發(fā)板指南
本文轉(zhuǎn)載來(lái)自森山的知乎文章,達(dá)爾聞經(jīng)作者同意發(fā)布。

挑一個(gè)單片機(jī),一本書(shū)。先看教學(xué)視頻,不懂再翻書(shū)本。最重要是要?jiǎng)邮郑瑢W(xué)習(xí)單片機(jī)一定要有目標(biāo),或者任務(wù)。不能單純想做什么就寫(xiě)什么。我是先前學(xué)了一點(diǎn)C語(yǔ)言,后來(lái)直接入職,從什么都不懂的小白,直接上崗,從點(diǎn)燈一路走過(guò)來(lái)。跟學(xué)生時(shí)代不同,我寫(xiě)的東西都是客戶需求的,都是后期要批量生產(chǎn)的產(chǎn)品,這樣既有必須完成的義務(wù)又有學(xué)有所用的成就感。成長(zhǎng)得就比較快,現(xiàn)在已經(jīng)完全能獨(dú)立完成項(xiàng)目。

1、學(xué)習(xí)理論知識(shí),書(shū)的話新手建議看看__王云51單片機(jī)教程,結(jié)合書(shū)帶的視頻一起看好理解;王云的單片機(jī)視頻網(wǎng)上到處都有。
2、最好有一個(gè)開(kāi)發(fā)板,在開(kāi)發(fā)板上從最簡(jiǎn)單的功能開(kāi)始實(shí)現(xiàn),比如做一個(gè)流水燈、蜂鳴器音樂(lè)盒等;
3、實(shí)現(xiàn)簡(jiǎn)單的功能后,開(kāi)始嘗試更復(fù)雜的程序,例如LCD顯示、數(shù)字時(shí)鐘、串口通信、中斷控制等;
4、在上述功能均可以實(shí)現(xiàn)之后,可以組合實(shí)現(xiàn),做一個(gè)多功能的單片機(jī)系統(tǒng)了;
5、如果對(duì)硬件熟悉,可以自己嘗試做一個(gè)單片機(jī)開(kāi)發(fā)板!

借用一個(gè)人給年輕的一封信:
作為過(guò)來(lái)人思前想后,我感到完全有責(zé)任將發(fā)自心底的感受傳遞給年輕一代,“一個(gè)企業(yè)家心靈深處渴望優(yōu)秀人才的卓越追求和深層次的嘆息、痛苦和感受”。您們千萬(wàn)不要等到畢業(yè)求職時(shí)才覺(jué)得自己能力太差,世界上從來(lái)就沒(méi)有后悔藥。當(dāng)然,如果您現(xiàn)在看了我寫(xiě)的這篇文章可能還不算晚,因?yàn)槟€有機(jī)會(huì)在以后的歲月里奮起直追——“亡羊補(bǔ)牢,尤未為晚”。對(duì)于現(xiàn)在剛進(jìn)入大學(xué)的學(xué)生,您應(yīng)該更加珍惜這美好的求學(xué)機(jī)會(huì),因?yàn)檎Q壑g幾年就過(guò)去了,您很快就會(huì)感到來(lái)自全社會(huì)生存競(jìng)爭(zhēng)的壓力,您面臨的對(duì)手再也不僅僅是您身邊的同學(xué),今天您在班上的成績(jī)的確是前幾名,但一走到社會(huì)上去才感到是多么地脆弱而又多么地不堪一擊。 在面試大多數(shù)本科生時(shí),我僅僅是詢問(wèn)了一些有關(guān)MCS-51 系列單片機(jī)的基本原理,但卻幾乎很少有人能夠完全答對(duì),簡(jiǎn)直是五花八門(mén)。很多作為一個(gè)即將畢業(yè)的自動(dòng)化專業(yè)本科生,至今還不知道單片機(jī)是這個(gè)專業(yè)的核心基礎(chǔ),難道不可悲嗎?您的水平不高我完全心中有底,其實(shí)我只要求這些學(xué)生能夠掌握單片機(jī)應(yīng)用開(kāi)發(fā)的基本技能,用匯編和C51 寫(xiě)過(guò)一些基本的程序,真正動(dòng)手做過(guò)一些簡(jiǎn)單的項(xiàng)目,然后將自己做過(guò)的項(xiàng)目寫(xiě)成比較規(guī)范的文檔。我想,這種形式的“自我介紹”肯定要比讓別人看您那寫(xiě)的千遍一律的“八股文”簡(jiǎn)歷不知要強(qiáng)多少倍,古人言:“一葉知秋”其實(shí)講的就是這個(gè)道理。平心而論只有具備這樣基礎(chǔ)的學(xué)生才配得上企業(yè)花錢(qián)對(duì)您進(jìn)行二次“開(kāi)發(fā)” 事實(shí)上,很多學(xué)生根本就不管老師平時(shí)是多么地勸導(dǎo)都聽(tīng)不進(jìn)去,我認(rèn)為您只要平時(shí)善于做一個(gè)有心人,主動(dòng)一些多找老師請(qǐng)教,然后從大三開(kāi)始幫老師打打下手干一些活。還有一個(gè)途徑就是自己花錢(qián)購(gòu)買(mǎi)一些學(xué)習(xí)開(kāi)發(fā)實(shí)驗(yàn)板,加強(qiáng)動(dòng)手能力的訓(xùn)練。但也有很多學(xué)生說(shuō)沒(méi)有錢(qián),可事實(shí)上并非如此,現(xiàn)在的學(xué)生購(gòu)買(mǎi)手機(jī)成風(fēng),我不知道手機(jī)對(duì)您們現(xiàn)在來(lái)說(shuō)到底有多大的用途?事實(shí)上,現(xiàn)在的學(xué)生家庭條件普遍都不太好,可這些孩子們的攀比心里卻十分地嚴(yán)重和可怕。到今天即將畢業(yè)之際才感到找工作太難。父母一個(gè)子兒地?cái)€下一些辛苦錢(qián)給您購(gòu)買(mǎi)電腦容易嗎?“望子成龍――可憐天下父母心”!他們是希望您能夠?qū)W到一些真本事,而您可能很多時(shí)間都在玩游戲,上網(wǎng)聊天,實(shí)際上對(duì)于您來(lái)說(shuō)僅僅是舉手之勞,只要花幾百元買(mǎi)一塊實(shí)驗(yàn)板,辛苦一個(gè)暑假的時(shí)間強(qiáng)化實(shí)踐,可能您就會(huì)與眾不同。與此同時(shí),可能您的信心大增,前途一片光明。俗話說(shuō)得好:倉(cāng)庫(kù)有糧,心中不慌!如果您平時(shí)沒(méi)有準(zhǔn)備,那么臨時(shí)匆匆忙忙地上陣面試肯定是要敗下來(lái)的。從2003 年開(kāi)始是全國(guó)第一次擴(kuò)招之后畢業(yè)人數(shù)最多的第一年,以后的畢業(yè)生還會(huì)更多,同時(shí)還有更多的研究生與本科生搶飯碗,面對(duì)就業(yè)的困境壓力不能說(shuō)不大,痛苦在其中。還有就是我每天都要面臨那些看不完的自我介紹簡(jiǎn)歷,很可惜幾乎都是清一色的“八股文”令人討厭。其實(shí)只要您的成績(jī)不是太差,分?jǐn)?shù)不是應(yīng)聘成功的關(guān)鍵,重要的是做人要踏實(shí),不要有水分,實(shí)際上,只要將您平時(shí)做過(guò)的小制作寫(xiě)成一篇心得,再帶上您的作品,“事實(shí)勝于雄辯”這樣更能打動(dòng)人。還有很多經(jīng)歷了四年本科又三年研究生階段學(xué)習(xí)行將畢業(yè)的碩士生,不僅不知道嵌入式操作系統(tǒng)是什么東西,而且連C++都不能熟練掌握,驅(qū)動(dòng)程序開(kāi)發(fā)的能力就更不容提了,僅僅做了一個(gè)單片機(jī)的應(yīng)用設(shè)計(jì)就拿到碩士文憑了,術(shù)業(yè)缺乏專攻泛泛而談,說(shuō)句實(shí)在話,怎么樣也教人無(wú)法接受??!對(duì)于我來(lái)說(shuō),如果您沒(méi)有特別的才能,我寧愿用三年時(shí)間培養(yǎng)一個(gè)好的本科生給更高的待遇,他肯定不比一般的碩士生差。所以,考上了研究生之后,您要時(shí)刻明白加強(qiáng)動(dòng)手能力的培養(yǎng)和前沿科學(xué)技術(shù)的學(xué)習(xí)至關(guān)重要的,這是您將來(lái)面試的“殺手澗”,因?yàn)槟厴I(yè)之后要求的工資待遇起碼是一般本科生的兩倍,但是這個(gè)錢(qián)不是那么好拿的。頂多3-5 年的時(shí)間,大家肯定能夠看到一個(gè)現(xiàn)實(shí),那就是如果您還不能熟練地掌握嵌入式操作系應(yīng)用開(kāi)發(fā)技術(shù)的話,您只能拿2000 元的月薪。即便您是研究生或是博士,那又有什么稀奇的呢?鄧伯伯有句名言,不管白貓還是黑貓,抓住老鼠就是好貓!我們知道企業(yè)家是要賺錢(qián)的,否則這個(gè)企業(yè)就留不住人才,無(wú)情的市場(chǎng)競(jìng)爭(zhēng)機(jī)制將會(huì)毫不猶豫地將這個(gè)老板淘汰出局。一個(gè)可持續(xù)發(fā)展的企業(yè),如果離開(kāi)了富有聰明才智的優(yōu)秀人才,那是不可想象的。光有幾個(gè)還不行,而是要有一個(gè)卓越的軍團(tuán)。
其實(shí)就業(yè)的問(wèn)題,對(duì)于一個(gè)努力的人來(lái)說(shuō)是何等地簡(jiǎn)單,我面試了300 多本科生,我只對(duì)其中幾個(gè)成績(jī)中等的本科生感興趣,他們主要是參加過(guò)2001 年全國(guó)電子大賽,有的是平時(shí)業(yè)余時(shí)間,暑假及其寒假都在跟老師干活的學(xué)生,與他們聊天真是一種莫大的享受和欣慰,對(duì)于我來(lái)說(shuō)真的是如獲至寶。于是,我就立即勸他們,您的成績(jī)中等確實(shí)難以考上好的學(xué)校和導(dǎo)師還不如不考研究生以免浪費(fèi)時(shí)間,同時(shí)也充滿自信告訴他們,“我就是伯樂(lè)!我愿意給您機(jī)會(huì)和花錢(qián)培養(yǎng)您”。事實(shí)上,即便您考上研究生,如果沒(méi)有遇上具有超前眼光和經(jīng)費(fèi)充足的導(dǎo)師,您讀了也白讀,更何況現(xiàn)在的研究生擴(kuò)招的這么多?一個(gè)導(dǎo)師帶那么多研究生,有那么多課題嗎?即便有的話,他應(yīng)付得過(guò)來(lái)嗎?可能殘酷的現(xiàn)實(shí)將會(huì)讓您看到,畢業(yè)之后回頭一看還遠(yuǎn)遠(yuǎn)不如當(dāng)年同您一道畢業(yè)的同班同學(xué)。確實(shí)也是,人家的機(jī)會(huì)比您好得多,關(guān)鍵是人家對(duì)待機(jī)會(huì)比您把握得好,可以說(shuō):恰到火候。難道非要讀研究生理論水平才高嗎?這是何等地荒謬??!我們知道電子與計(jì)算機(jī)技術(shù)的發(fā)展日新月異。大學(xué)的更新速度一定就要快嗎?回答是否定的,比如說(shuō)推廣PHILIPS 的最新單片機(jī)和USB 技術(shù)吧!他們的更新速度肯定比一個(gè)可持續(xù)發(fā)展的企業(yè)要慢得多,難道說(shuō)我們的人才水平不夠高嗎?我們公司就有一批這樣在各個(gè)領(lǐng)域里出類(lèi)拔萃的“年輕專家”從 2003 年開(kāi)始,我們將會(huì)有一系列的專著在北京航空航天大學(xué)出版社出版,大多數(shù)的著作都來(lái)自于我們長(zhǎng)期的基礎(chǔ)研究和應(yīng)用開(kāi)發(fā),可以毫不夸張地說(shuō)這些都是我們這個(gè)年輕團(tuán)隊(duì)合作的結(jié)晶。他們是優(yōu)秀和卓越的人才,他們沒(méi)有就業(yè)的壓力,他們不怕炒魷魚(yú),相反我倒時(shí)刻要想盡辦法加強(qiáng)公司的管理,從工資,獎(jiǎng)金,福利,生活和事業(yè)成就感等各個(gè)方面絞盡腦際善待人才和留住人才,這么努力的人才根本就不需要過(guò)多地為工作和生活發(fā)愁,對(duì)于這個(gè)問(wèn)題當(dāng)然是仁者見(jiàn)仁智者見(jiàn)智,也就是下面我要講到的問(wèn)題,一個(gè)人如何根據(jù)自己的特點(diǎn)、條件和機(jī)遇對(duì)自己如何定位的問(wèn)題,也是至關(guān)重要的。
比如說(shuō),如果您對(duì)單片機(jī)的理解僅僅是入門(mén)水平的話,那么您首先就應(yīng)該低調(diào)一些,因?yàn)槟饕娜蝿?wù)是為了尋找一個(gè)可以學(xué)習(xí)的機(jī)會(huì),說(shuō)句實(shí)在話,此刻此刻您一定要清醒地意識(shí)到:尋找伯樂(lè)比眼前的利益更加重要!因?yàn)槟F(xiàn)在確實(shí)還沒(méi)有可以驕傲的資本,您一定要想盡辦法取得第一次正式踏入社會(huì)的入場(chǎng)卷,這對(duì)您來(lái)說(shuō)是何等地重要??!俗話說(shuō)得好,“萬(wàn)丈高樓從地起”您一定要尋找機(jī)會(huì)通過(guò)業(yè)績(jī)表現(xiàn)出您的能力,您確實(shí)與眾不同之處。這樣您就可能在一個(gè)公司里樹(shù)立您的“信用”,有了信用之后隨之而來(lái)的機(jī)會(huì)將會(huì)越來(lái)越多,到那時(shí)您根本就不用不愁自己的待遇和地位問(wèn)題了。所以對(duì)于一個(gè)剛剛步入社會(huì)的年輕人來(lái)說(shuō),您能夠做到以“誠(chéng)信” 打天下,您將來(lái)的前途肯定是無(wú)限光明。千萬(wàn)不要感到自己在班上的成績(jī)是前幾名或者相對(duì)來(lái)說(shuō)自己的動(dòng)手能力相比之下比同學(xué)強(qiáng)多少、多少,或者自己在讀書(shū)期間貸了多少款,或者家里是多么地缺錢(qián),因?yàn)楫?dāng)您加入整個(gè)社會(huì)的競(jìng)爭(zhēng)之后,這些都不是您要求高薪的理由,這個(gè)時(shí)候您的心態(tài)將可能會(huì)決定您的命運(yùn),因此對(duì)自己要有充分的認(rèn)識(shí)和正確的估價(jià),經(jīng)常是很多學(xué)生用這些理由向我開(kāi)出高價(jià),我無(wú)話可說(shuō)只好“搖頭和嘆息”。如果您的水平還不夠,我認(rèn)為也不要自卑,要知道機(jī)會(huì)是時(shí)刻屬于有準(zhǔn)備的年輕人,但也不可掉以輕心,此時(shí)此刻,您應(yīng)該振作起來(lái),立即拿起書(shū)本努力學(xué)習(xí)和加強(qiáng)實(shí)戰(zhàn)的訓(xùn)練,待到羽翼豐滿之時(shí)大膽地走出去闖蕩,讓社會(huì)來(lái)對(duì)您做一個(gè)恰當(dāng)?shù)脑u(píng)價(jià),然后再根據(jù)現(xiàn)實(shí)的情況不斷地調(diào)整自己,繼續(xù)學(xué)習(xí)和實(shí)踐,由于電子和計(jì)算機(jī)科學(xué)的高速發(fā)展呈現(xiàn)日新月異的變化局勢(shì),您一定要明白:您距離失敗永遠(yuǎn)只有6 個(gè)月!

多寫(xiě)程序!多練習(xí)!時(shí)間久了就會(huì)了!

我來(lái)發(fā)表一下我的觀點(diǎn)。說(shuō)下我的方法,適合在校大學(xué)生,大家有什么見(jiàn)解歡迎糾正討論。
為什么說(shuō)適合在校大學(xué)生呢,因?yàn)樵谛4髮W(xué)生時(shí)間充裕。而參加工作的人,時(shí)間就是金錢(qián),與其花費(fèi)太長(zhǎng)時(shí)間自學(xué),還不如報(bào)個(gè)培訓(xùn)班速成,但是培訓(xùn)班的缺點(diǎn)可能就是基礎(chǔ)不牢(這個(gè)是個(gè)人見(jiàn)解,如有不同意見(jiàn)也可以看看我寫(xiě)的自學(xué)經(jīng)歷,根據(jù)自己的基礎(chǔ)跳過(guò)相應(yīng)的步驟即可)。
我認(rèn)為學(xué)習(xí)任何東西都是需要分模塊的。各個(gè)模塊熟悉了最后串起來(lái)(個(gè)人經(jīng)驗(yàn))
提醒??!
提醒!!
提醒??!
玩嵌入式是有點(diǎn)費(fèi)錢(qián)的。但是有舍有得,這個(gè)看你們自己把握了。
下面我說(shuō)下我的方法
一、嵌入式分為幾個(gè)模塊(給自己學(xué)的勇氣)
二、起步學(xué)什么(打基礎(chǔ))
三、進(jìn)階學(xué)什么(給自己堅(jiān)持下去的動(dòng)力)
一、嵌入式分幾個(gè)模塊
嵌入式分為軟件、硬件(簡(jiǎn)單吧)。軟件,其實(shí)可以分的更詳細(xì),但是我們不需要分這么詳細(xì),后面學(xué)習(xí)的過(guò)程中你就明白了。
二 、起步學(xué)什么
首先,你最好是計(jì)算機(jī)、電子、電氣、微電子、電子信息、通信、自動(dòng)化、信息工程等相關(guān)專業(yè)。
可能有人會(huì)問(wèn)為什么必須這些專業(yè)。因?yàn)檫@些專業(yè)要么編程能力強(qiáng),要么硬件基礎(chǔ)很熟悉,學(xué)習(xí)嵌入式是天然的優(yōu)勢(shì)。比如自動(dòng)化專業(yè),他們學(xué)習(xí)過(guò)電路,模電,數(shù)電,電力電子這些課能讓你們有牢固的硬件基礎(chǔ);還有C++,51單片機(jī),微機(jī)讓你們有一定的軟件基礎(chǔ)。特別是51單片機(jī),一旦學(xué)會(huì)了,后面學(xué)習(xí)嵌入式會(huì)更容易。
接下來(lái)仔細(xì)說(shuō)說(shuō)如何起步(基礎(chǔ)不勞,地動(dòng)山搖)
第一步,你要懂得硬件的基本知識(shí),這些硬件知識(shí)能幫你更好的理解51單片機(jī)的內(nèi)部原理,硬件的管腳配置,引腳功能,更重要的是幫你理解放大電路,濾波電路等。(第三步推薦一本我認(rèn)為比價(jià)好的關(guān)于51的書(shū),里面有51的內(nèi)部原理)這些懂了,在用51C語(yǔ)言寫(xiě)程序的時(shí)候就會(huì)發(fā)現(xiàn)so easy。至于為什么先學(xué)51呢,因?yàn)榇髮W(xué)大部分還是開(kāi)設(shè)51的課,再者51容易理解,教學(xué)視頻豐富。
第二步,你要懂C/C++,c語(yǔ)言是學(xué)習(xí)嵌入式的靈魂。因?yàn)榇髮W(xué)都開(kāi)設(shè)有C課程,所以大家從C開(kāi)始學(xué)會(huì)相對(duì)方便和節(jié)約時(shí)間。
第三步,有了相關(guān)基礎(chǔ)后開(kāi)始看51單片機(jī)系列的書(shū)(見(jiàn)下圖),網(wǎng)上各種各樣的視頻多的很,對(duì)著網(wǎng)絡(luò)上的視頻學(xué)習(xí),效果會(huì)更好。但是不能只學(xué)不練,買(mǎi)個(gè)開(kāi)發(fā)板(當(dāng)初我們是自己焊的),自己對(duì)著視頻練習(xí)。理論和實(shí)際結(jié)合效果最好。
當(dāng)然需要用到相應(yīng)的燒錄軟件,和編程軟件。我在這里統(tǒng)一說(shuō)一下。
燒錄軟件就用STC-ISP(好用),編程的用KEIL c51(keil3也能用),后面玩32了再用KEIL5。
三、進(jìn)階學(xué)什么
第一步、51單片機(jī)玩差不多半個(gè)學(xué)期就行啦,半個(gè)學(xué)期夠你掌握了,太長(zhǎng)浪費(fèi)時(shí)間。我們已經(jīng)玩過(guò)51了,已經(jīng)是大孩子了,哈哈哈。但是我們沒(méi)有玩過(guò)32位的,直接上arm是不行的。
所以我們要開(kāi)始學(xué)習(xí)32,其實(shí)32比51 簡(jiǎn)單的多,因?yàn)樗麄冇胸S富的庫(kù),各種庫(kù)。市面上的教學(xué)資源非常非常的豐富,產(chǎn)品也比較成熟,某寶上面各種開(kāi)發(fā)板(價(jià)格300以內(nèi)),自己選一個(gè)買(mǎi)就行了。
其實(shí)你也可以跳過(guò)51學(xué)32,畢竟51太老了,太陳舊了,但是我覺(jué)得你學(xué)習(xí)51會(huì)幫你牢固知識(shí),幫你形成寫(xiě)程序的習(xí)慣等。
學(xué)習(xí)32 的周期,根據(jù)自己情況安排,一般一個(gè)到一個(gè)半學(xué)期。
第二步、現(xiàn)在咱們對(duì)32比較了解了,輪到學(xué)習(xí)嵌入式系統(tǒng)了,對(duì),沒(méi)錯(cuò)就是系統(tǒng),是不是很興奮。。
想學(xué)習(xí)嵌入式系統(tǒng)Linux/WIN等 ,首先你需要買(mǎi)個(gè)arm學(xué)習(xí)版,在淘寶上面買(mǎi)的話,不太貴S3C2440,500+元。資料非常多,建議買(mǎi)arm9,因?yàn)閞am11的資料太少,不適于自學(xué)?;蛘吣銈冾A(yù)算非常充足,可以考慮Cortex-A8/A9的開(kāi)發(fā)板。
我相信你們學(xué)到這里已經(jīng)有了自己的想法和見(jiàn)解了。到這個(gè)過(guò)程的時(shí)候,知乎上的大佬回答的很詳細(xì)和網(wǎng)上的資源也非常豐富,多看看大家寫(xiě)的共同學(xué)習(xí)。
最后,做下總結(jié)
看懂電路圖、看懂芯片手冊(cè)(更牛皮的要求是會(huì)自己繪制PCB板,會(huì)器件選型,會(huì)自己調(diào)試自己設(shè)計(jì)板子,直至可以量產(chǎn))
有編寫(xiě),移植驅(qū)動(dòng)的能力
懂內(nèi)核的實(shí)現(xiàn)機(jī)制
懂C語(yǔ)言,C++等
下面列有詳細(xì)的要求,你們自己把握下。
等到找工作的時(shí)候,有嵌入式硬件,嵌入式軟件,嵌入式等,甚至可以觸類(lèi)旁通,要看你們的學(xué)習(xí)水平了, 哈哈哈。
嵌入式硬件要求:
1、熟練使用Allegro Cadence等EDA工具進(jìn)行硬件原理圖及PCB的設(shè)計(jì),精通PCB布線流程、具備多層板布線經(jīng)驗(yàn)規(guī)范及信號(hào)完整性分析,熟悉至少一種高速通信接口,如PCIE、SRIO、10GBE等。
2、精通嵌入式處理器設(shè)計(jì),具有大型CPU或者DSP的板級(jí)硬件設(shè)計(jì)調(diào)試經(jīng)驗(yàn),例如P系列或者T系列PowerPC,C6678、C6655等DSP,以及FPGA設(shè)計(jì)經(jīng)驗(yàn)者等。
3、負(fù)責(zé)硬件產(chǎn)品的需求調(diào)研、方案設(shè)計(jì),熟練使用各類(lèi)電子儀器儀表進(jìn)行測(cè)試。
。。。。。。
嵌入式軟件要求:
1、熟悉Linux操作系統(tǒng)內(nèi)核,有Linux內(nèi)核和驅(qū)動(dòng)開(kāi)發(fā)經(jīng)驗(yàn)。
2、精通C/C++開(kāi)發(fā)語(yǔ)言,shell腳本。
3、精通C語(yǔ)言,能獨(dú)立編寫(xiě)、調(diào)試硬件驅(qū)動(dòng)程序和功能程序。
4、熟悉多線程的開(kāi)發(fā),精通ucosII嵌入式系統(tǒng)移植、驅(qū)動(dòng)和應(yīng)用開(kāi)發(fā)。
。。。。。。
嵌入式硬件的工作:
嵌入式軟件的工作:
嵌入式的工作:
那你可以以“低端單片機(jī)-高端單片機(jī)-低端ARM-高端ARM”來(lái)學(xué)。我現(xiàn)在就是工作中用STM32,晚上回去自學(xué)ARM9。
如果回答對(duì)你有所幫助,想了解更多電路,單片機(jī)知識(shí),加波關(guān)注

學(xué)好和學(xué)會(huì)還是不一樣的,凡事“易識(shí)難精”,“學(xué)好”我的理解是“精通”,何謂“精通”?基本就是沒(méi)啥搞不定,搞不好的,要做到這點(diǎn),不下點(diǎn)功夫是不行的。
單片機(jī)分硬件和軟件,硬件是按需要搭電路,然后寫(xiě)程序“驅(qū)動(dòng)”它,硬件是基礎(chǔ),軟件是靈魂。
相對(duì)地,我個(gè)人認(rèn)為單片機(jī)寫(xiě)程序相對(duì)pc來(lái)說(shuō)還是要簡(jiǎn)單些,要的相關(guān)知識(shí)也少些,但大部分單片機(jī)資源有限,不能像pc程序一樣放開(kāi)來(lái)寫(xiě),更需要“咬文嚼字”,惜字如金;在pc上寫(xiě)程序可以像又長(zhǎng)又臭的長(zhǎng)篇小說(shuō),可以無(wú)限制地發(fā)揮想象,而單片機(jī)上寫(xiě)程序就像寫(xiě)散文、作詩(shī),要短小精悍。
由于單片機(jī)和pc不一樣,pc寫(xiě)程序大多都平臺(tái)化了,操作系統(tǒng)常用的就兩三種,硬件大抵都可以“透明”訪問(wèn)。單片機(jī)不一樣,流行的,大的系列就十種八種,具體到某些型號(hào)就多去了,即使同種單片機(jī),選不同型號(hào)往往都不一樣,有些“坑”需要規(guī)避,這就增加了學(xué)習(xí)成本。
認(rèn)為學(xué)單片機(jī)很難或很易都是不對(duì)的,具體到學(xué)單片機(jī),是按照你的需求來(lái)的,例如你想學(xué)來(lái)干嘛?業(yè)余愛(ài)好?工作需要?或者純粹為了學(xué)習(xí)而學(xué)習(xí)?
如果在學(xué)校,開(kāi)了這個(gè)課,選了這個(gè)片,要考試要及格,這個(gè)沒(méi)轍,得按課程要求學(xué)完學(xué)會(huì)。如果是工作需要,大抵選用何種片也是有要求的,挑揀的機(jī)會(huì)也不多。
倒是業(yè)余愛(ài)好來(lái)得自由快活,找好玩的就行,例如我,有時(shí)寫(xiě)程序煩了,就找找樂(lè)子,弄個(gè)小玩意玩玩,例如讀讀卡,開(kāi)個(gè)鎖什么的,只在vm里裝個(gè)avr的環(huán)境,咱用的還是特偏門(mén)的開(kāi)發(fā)工具basic+kicad!一個(gè)比較小巧的軟件開(kāi)發(fā)環(huán)境,什么都帶了才十幾m,和現(xiàn)在動(dòng)不動(dòng)就數(shù)百m數(shù)g的開(kāi)發(fā)環(huán)境比真是微不足道,另一個(gè)是只有百多m的cad,都很小。但從寫(xiě)程序角度來(lái)看,還是很方便舒服的,壞處嘛,當(dāng)然就是可參考的例程太少,驅(qū)動(dòng)幾乎都要自己搞定,其實(shí)有合適的工具也不難,有時(shí)間,調(diào)劑一下編程口味也是蠻好的。
當(dāng)然了,現(xiàn)在stm32火得一塌糊涂,沒(méi)用過(guò)都不好意思說(shuō)你會(huì)單片機(jī),流行的東西好處是學(xué)習(xí)環(huán)境好,搞什么的人都有,容易找到自己需要的案例,坑好踩好填,做產(chǎn)品時(shí)成本容易控制。
至于學(xué)好沒(méi)學(xué)好,一句老廣告詞:誰(shuí)用誰(shuí)知道!

先從簡(jiǎn)單的入手吧,比如先用shineblink開(kāi)發(fā)板入門(mén)。

學(xué)習(xí)stm32 就好,社區(qū)資料,代碼,開(kāi)發(fā)板和參考書(shū)很多,有一本《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》雜志和微信公號(hào)關(guān)注一下

最有效的學(xué)習(xí)方法就是先從51開(kāi)始,基本上現(xiàn)在學(xué)校都是以這個(gè)為基礎(chǔ)教學(xué)??梢哉业胶芏嚓P(guān)于51的書(shū)籍,資源,學(xué)習(xí)板。挑選合適自己的書(shū)和學(xué)習(xí)板,邊看書(shū)邊按照書(shū)上說(shuō)的做實(shí)驗(yàn),等熟練了以后就可以開(kāi)始開(kāi)發(fā)一些小項(xiàng)目。慢慢地越來(lái)越熟練了。
