03.03 如何學習單片機?

我是小帥華


結合我個人對單片機的理解以及個人經歷來回答該問題。

我是2009年(大三)開始接觸單片機,那時買了一個51開發板,學習視頻看的是郭天祥老師的《十天學會51單片機》,沒有想到的是2015年在北京我竟然在郭天祥老師的公司海克智動親眼見到了郭老師本人,還挺激動的那會,他們公司的一款空氣質量檢測儀用的就是我當時公司飛思卡爾的一款單片機,一上來就跑題了,^_^,趕緊回來。

我覺得初學者在學了C語言和數電、模電後就可以學習單片機了,最快的學習方式帶著一個明確的項目需求,有目標的去學習,當你親自動手完成一個項目後,你就真正的入門了。當然對大部分人來說,可能並沒有一個明確的項目需求,甚至連單片機到底有什麼用都不清楚,那們剛開始你可以找一個好的視頻或者一本好的書,邊學邊動手做實驗,什麼跑馬燈啊、數碼管啊、按鍵啊、串口通信啊等這些基礎的實驗先掌握,最好是自動手敲一遍代碼,並按照自己的想法去做一定的修改,在這個過程中你肯定會遇到問題,你要想盡一切辦法去解決,並把其中的原理弄清楚,一定不能囫圇吞棗。如果你C語言不熟,正好藉著學習單片機把C語言也能好好學了。

對單片機有了初步的熟悉後,建議親自動手畫一塊板子,用Altium Designer之類的軟件就可以,然後可以花幾十元在嘉立創投個板,回來後自己手工焊接兩塊調試,最起碼把基礎的GPIO、UART、IIC、SPI功能調通,如果你自己做的板子可以正常的運行,同時裡面是你自己寫的代碼,那感覺絕對很爽。有了這麼一次成功的體驗,你對單片機的感情一定進一步加深。也許你會說我又不想做硬件幹嘛要學習畫板子焊接啊,但是我還是建議你去實踐一次,因為單片機是一個軟硬件關聯度非常高的行業,就算你將來工作不畫板子不焊接,多一項技能和經歷總是沒壞處吧,不然每次聽別人說什麼封裝、幾層板啊等這些名詞,你不懂總是很難受吧。話說我當時我就是沒有自己去畫板,後來工作後老覺得少了一塊,於是又從頭彌補了這塊缺失的東西,雖然我現在不做硬件(我現在做產品經理),因為我自己走過這個流程,所以和硬件工程師溝通起來就比較順暢,也清楚整個環節的工作量。

有了上述經歷,就差不多可以用單片機來進行產品開發了,不同的產品、不同的行業對單片機的使用有著較大的差異,比如在消費類產品中,可能比較關注產品的低功耗特性,在工業產品中,可能會使用一些高級的外設如網口等,這就涉及到網絡協議棧,而通常網絡協議棧是搭配著RTOS一起使用的,你可能得學習RTOS;在汽車電子行業,可能會經常使用CAN總線,那麼你需要了解CAN總線。還有一些產品會使用USB,你還得熟悉USB。這裡說的低功耗、網絡、RTOS、USB、CAN相對上述的GPIO、UART、IIC、SPI屬於更復雜的外設或功能,如果要精通需要花費更多的時間。

對一個產品來說,單片機可以看做一個工具,本質是它是為產品的功能服務的,除了單片機本身相關的技能,你同時需要掌握的是單片機之上的行業的知識,讓單片機真正的為你所用,產生更大的價值。






TopSemic


單片機其實是一種集成電路芯片,這個芯片裡面集成了AD轉換電路、定時時鐘、隨機存儲、只讀存儲器等電路,可以說是一個微型計算機系統。因此要學好單片機,不僅需要對語言編程熟悉,同時還需要對外外圍電路瞭解。

一、軟件基礎

1、編程語言的熟悉

現在的單片機發展的很快,由最初的4位單片機發展到8位、16位、32位等,單片機位數越來越高,處理數據更快更有效,同時能處理很多信息,初次入門可以先從8位單片機入手,典型的是C51單片機,C51單片機是基礎入門的一個單片機,同時在應用方面是最廣泛的一種單片機。編程語言目前C語言還是很受歡迎的,可以先從C語言入手,熟悉數組、for語句、指針、while語句等,如果對彙編語言感興趣可以學習彙編語言,不過彙編語言不像其他語言,它比較冗雜,確定自己對哪門語言感興趣,比如java、嵌入式語言、VB等。

二、硬件基礎

1、單片機硬件特性

單片機不是單靠編程語言就能夠實現的,必須要硬件支撐,有要學好單片機,必須懂得隨機存儲器RAM、只讀存儲器ROM、定時器、計數器、並行口、串行口、數模轉換、終端系統、PWM控制輸出、I/O口以及AD口各種類型輸出接口,是推輓輸出還是開漏輸出、去抖動處理、延遲處理、通訊方式SPI、I2C、I2S、UART、SDIO、GPIO、CAN等,這些內容都需熟悉。更深一點還要熟悉掉電覆位電壓、睡眠模式等

2、單片機外圍電路

學好單片機的話還需要看得懂外圍電路,當然電源部分有時候不需要知道很多,一般是控制部分,是該輸出低電平還是高電平,老工程師如果對硬件電路有什麼不好的話會建議如何連接可以節省一些元器件,比如同時輸出等,要對上拉電阻還是下拉電阻瞭解,一般從事軟件的話懂的硬件少一點,一些基本電路應該要知道。

三、其他

想學好單片機,要養成良好的習慣,對自己的編程語言要註釋,方便別人閱覽的同時也方便自己修改,因為軟件本來就是要不斷的修改,不斷完善,最終才能達到完美所需要的效果。要學會總結,做項目的同時善於分析每一個問題點,同時要有一種不斷學習的能力,因為單片機本身更新速度很快,要跟得上腳步。


電子電路設計


要學習單片機其實不難,但是也需要你有一定的模電數電及編程語言知識。模電數電不需要理解很深,但是最起碼得二極管三極管得了解,二進制十六進制的轉換要明白。

1.首先,要學一門編程語言。單片機開發一般用c語言,現在基本不用匯編了。c語言要掌握if,while等基本關鍵詞的用法,高級的可以以後慢慢了解。然後指針可以大概瞭解,單片機對指針的作用並不是很複雜。

2.選一款合適的單片機。我想大部分人應該都會推薦51單片機,確實51外設簡單,資料多,學習方便。但是我還要推薦的是stm32單片機,性能強大,有許多視頻資料,學習起來也很方便。

3.從io的輸入輸出開始,再學習串口,定時器,AD,IIC, SPI等等,一步步學習單片機的基本外設。其實一般也就那麼幾種,多用就會了。

4.學著做一些小玩意兒,一來可以鍛鍊自己的編程水平,同時也提高了自己的動手能力。建議可以做一個旋轉led,很酷炫,製作也不是很複雜。

5.最後就是要靠自己的努力了,三天打魚兩天曬網是肯定不行的。還有就是要有鑽研精神,初學肯定問題很多,要學著用各種方式去弄明白。最後說一句,興趣是最好的老師,有興趣,學什麼都簡單。

最後附上一張自己的開發板圖片,


妖結結


單片機相當於一個“微型電腦”,它集成了CPU、RAM、ROM,還有I/O、定時器、外部中斷、AD轉換、LCD驅動、PWM等等各鍾功能的外設。在我們日常使用的家用電器、電子產品基本上都由單片機來控制。

首先選一款適合自己的單片機進行學習。

  • 如果是某公司的在職員工,並且公司在做單片機相關產品的開發和製造。建議選用一款公司常用的單機來進行入門學習,這樣可以快速入門。有問題可以隨時請教其他工程師,關係搞好一點,還會手把手的教你,這樣可以少走不少彎路,搞定單片機也易如反掌。

  • 如果基礎不是太好,也沒有其他人的指導,可以選用51系列的單片機進行入門學習。因為51系列單片機的學習套件比較便宜,網上的資料比較齊全,參考書籍也很多。學起來也是比較簡單的,遇到什麼問題,網上一搜基本上也能解決了。如果你有一定的硬件基礎,還可以自己畫一塊開發板來進行學習。
  • 如果有一定C語言基礎,數字電路、摸擬電路基礎較好,對單片機也有一定的瞭解,建議直接選用STM32的單片機進行入門學習。STM32系列單片機目前在國內是相當的火爆,教程資料相關的多。網上買的開發板基本上都附帶教程、源程序以及開發環境,非常容易上手。

制定學習計劃並嚴格執行

如果下定決心學習單片機,一定要制定相關學習計劃,並且嚴格按計劃進行學習,請關注我的頭條號@電子產品設計方案。有詳細的指引哦。


電子產品設計方案


單片機,其實就是微控制器,也可以認為是小型CPU,它是把一個計算機系統集成到一個芯片上。學習單片機可以先從最簡單的8位的51系列的單片機開始,熟悉51單片機的內部資源,學習彙編語言給單片機編程,或者直接學習C語言對單片機編程,使用匯編語言可以更好的瞭解單片機。瞭解以後,學習畫pcb,自制電路板,要動手製作單片機的最小系統,編譯下載編寫的程序到單片機。學會一款單片機,1、可以熟練操作任意I/O輸出高低電平,檢測任意I/O的輸入電平情況。2、定時器、計數器的操作。3、中斷的使用。4、AD/DA的使用。5、串口的使用。以上這些都熟練操作的話,就可以做一些小項目、小製作了。單片機的學習一定要勤動手,動手能力至關重要,平時可以用萬用板或者熱轉印方式自制PCB板,焊接、調試電路,再學習瞭解一些常用的硬件的協議SPI、IIC等。只要熟練掌握了一種單片機,其他的單片機就大同小異了,單片機學的差不多了,就可以學習ARM。哈哈,要活到老學到老,興趣是最好的老師,要多動手製作作品,會激勵自己學習的動力。


IAB2


單片機學習是很難的,不能速成,你必須承認這一點,有些號稱能幫你從入門到精通,那些大多都是牛皮膏藥,基本上講的都是些入門的東西,市面上的講單片機的書本內容基本上八九成是一樣的。學習單片機的視頻,八九成一樣,不同的人講的,主講人的水平高低不同。

而正真高深的單片機程序處理,你在網上基本上找不到,偶爾能有那麼一兩個高手把自己的一點點心得分享出來,也許你半天都不能領悟其真諦。

正真的高手是這麼煉成的?唯有自己日積月累,不斷堅持、思考讀成熟的程序,加上自己對程序的悟性,等到2到3年方可有所造詣。

1、首先我們來談談C 基礎,單片機程序開發,基本上用的是C 語言,你的 語言學的怎麼樣了,對於關鍵詞的使用是否已經融會貫通了,對於語法規則是否已經掌握。這是一門實踐行的知識,沒有實踐你的C 語言等於0,他的功能可不是書上那些例子,輸個數做個加減乘除把結果輸出。利用他的關鍵字及語法規則,勾畫出無限的生產力。對於C 語言的基礎知識你要達到那種水平了,當你的想法出現的時候,功能要求已有,你能立刻用C 語言描繪出來。C 語言只是工具,實現我們的想法的工具,對於工具的使用要信手拈來,例如:把一個字節數據高底位一一兌換、把脈衝數轉換為時間及檢測出按鍵的連續兩次按下等等,看到問題的時候具體的實現代碼在老海呈現了沒。

2、工具用熟了以後,我們該學習什麼了了?對語法熟練以後就應該重點學習程序設計的方法,請大家分清兩個概念,C 語言只是工具,會C 語言並代表你會設計程序,程序設計能力可分為,首先是能將複雜的功能要求拆分為若干個細小功能,用C 語言描述實現,再將這些小功能用你的C 語言工具串起來組成我們所需要的複雜功能。整個過程下來C 語言都只是實現你想法的工具。看到這裡你是否還敢用“玩”、“精通”來形容單片機嗎,當真正進入單片機殿堂的時候你會感覺這是一個浩瀚無邊的宇宙,你會越發感覺自己的渺小,只有更好,沒有最好。

總結幾點個人的學習的經驗:

C語言與程序設計的學習是相輔相成的,他們共同進步,就如同你的兩隻腳,誰都不能超過誰很遠。學習單片機之前請先學習C 語言,請不要相信什麼零基礎也能學好,至少20天,要把基礎知識掌握,在進入單片機學習,視頻網上一大把,學會操作基礎模塊,在這個階段你可以在網上尋找知識學習,將你開發板的模塊程序都練一遍。

當你開發板學完了, 這個時候該這麼辦了,這就是我今天重點要的。

如果你就是淺嘗輒止,那麼你可以說自己入門了,如果你想有所造詣那麼你還遠著了,對於走過了這個階段以後,我對我的學生的要求就是“背程序”,就如同別人學習英語背文章增強語感。我說所的“背程序”,並非死記硬背,屬於一種重複強化訓練,圍繞幾個主題,①、按鍵讀取;②、數碼管顯示(重複計算顯示代碼) ;③、LCD1602液晶顯示;④、AT24C02讀寫;⑤、DS1302讀寫;⑥、D S18B20讀寫。每個項目從建工程到下載成功在20分鐘以內,最好練到在10分鐘左右。對於代碼需要精簡而又有內涵,當你做好以後能增強你的語感及常規程序設計能力。最後以同樣的方式訓練一個綜合項目——多功能數字鐘,這個項目可能需要一個上午才能做好。這個過程的目的很簡單,增強C 語言工具的使用能力,在單片機編程這塊,對於基礎模塊的程序設計能力,完成從感覺自己什麼都懂,可要寫點什麼東西時又不知如何下手到實現一些簡單功能程序能迅速寫出來的轉變。這個方式枯燥乏味但是效果還可以,可以借鑑借鑑。

完成了上述工作,緊接著多練習綜合項目,這個時候這能靠自己,學程序沒有別的,只能多練,多想。用你的開發板編寫:計算器、電子日曆、電子密碼等各類能把你開發板上的資源綜合起來用的程序。假想就是在做項目,要對自己提出苛刻的功能要求,切記不多說差不多了,要做到完美。

再往下走,完美要回過頭學習單片機原理,去學習彙編,學習單片機的運行原理對你編程有極大的幫助,再把你的C 語言書拿出來,細細的看前幾章節,是時候該去看看指針了。在程序中簡單的使用指針。

就這樣往下練吧,估計至少得年吧時間。

再往下走,你應該去研究指針了,將指針應用到你的程序當中,它可以給你解決以往你所遇到的很棘手的問題。

講到指針,該想到結構體了,我們應該去學習鏈表了,我們要將簡單數據結構應用到單片機了。這個期間你如果能去學習在操作系統上的編程是很有必要的。如在VC 上做簡單功能界面,Linux 系統編程。這可以讓你看看別人優秀代碼,從中吸取經驗,就算看不到源代碼,也可以從別人的函數所具備的功能上思考的自己的函數設計,改善自己的函數,我的很多函數功能設計方式就是這麼來的。

差不多又是一年時間過去了。真心希望你堅持下來了,到這個時候你基本上已經能獨立解決很多問題了。

這個時候我們該去學習什麼了了,該去學習“易經經”——C 語言描述數據結構與算法分析。在程序的世界裡,它就是最高的內功心法,能在裡面學的一招半式,就可以行走江湖了。這本書目前我也只是研究過幾個章節,在這裡面你會看到操作系統的具體實現,文件系統的設計思想等等,各類大型程序設計設計思想。

關於單片機學習,內容遠不止這些,上述只講了單片機的程序設計方面,依據單片機的特片還硬件這一塊極為重要,不理解硬件也設計不好程序,下次再談談如何學習硬件。對於8位單片機你是否想過, 給它裝上一個操作系統,這是我最近一直在思考的問題




希望能幫到你!


技術宅老夏


借用一個人給年輕的一封信:

作為過來人思前想後,我感到完全有責任將發自心底的感受傳遞給年輕一代,“一個企業家心靈深處渴望優秀人才的卓越追求和深層次的嘆息、痛苦和感受”。您們千萬不要等到畢業求職時才覺得自己能力太差,世界上從來就沒有後悔藥。當然,如果您現在看了我寫的這篇文章可能還不算晚,因為您還有機會在以後的歲月裡奮起直追——“亡羊補牢,尤未為晚”。對於現在剛進入大學的學生,您應該更加珍惜這美好的求學機會,因為眨眼之間幾年就過去了,您很快就會感到來自全社會生存競爭的壓力,您面臨的對手再也不僅僅是您身邊的同學,今天您在班上的成績的確是前幾名,但一走到社會上去才感到是多麼地脆弱而又多麼地不堪一擊。 在面試大多數本科生時,我僅僅是詢問了一些有關MCS-51 系列單片機的基本原理,但卻幾乎很少有人能夠完全答對,簡直是五花八門。很多作為一個即將畢業的自動化專業本科生,至今還不知道單片機是這個專業的核心基礎,難道不可悲嗎?您的水平不高我完全心中有底,其實我只要求這些學生能夠掌握單片機應用開發的基本技能,用匯編和C51 寫過一些基本的程序,真正動手做過一些簡單的項目,然後將自己做過的項目寫成比較規範的文檔。我想,這種形式的“自我介紹”肯定要比讓別人看您那寫的千遍一律的“八股文”簡歷不知要強多少倍,古人言:“一葉知秋”其實講的就是這個道理。平心而論只有具備這樣基礎的學生才配得上企業花錢對您進行二次“開發” 事實上,很多學生根本就不管老師平時是多麼地勸導都聽不進去,我認為您只要平時善於做一個有心人,主動一些多找老師請教,然後從大三開始幫老師打打下手幹一些活。還有一個途徑就是自己花錢購買一些學習開發實驗板,加強動手能力的訓練。但也有很多學生說沒有錢,可事實上並非如此,現在的學生購買手機成風,我不知道手機對您們現在來說到底有多大的用途?事實上,現在的學生家庭條件普遍都不太好,可這些孩子們的攀比心裡卻十分地嚴重和可怕。到今天即將畢業之際才感到找工作太難。父母一個子兒地攢下一些辛苦錢給您購買電腦容易嗎?“望子成龍――可憐天下父母心”!他們是希望您能夠學到一些真本事,而您可能很多時間都在玩遊戲,上網聊天,實際上對於您來說僅僅是舉手之勞,只要花幾百元買一塊實驗板,辛苦一個暑假的時間強化實踐,可能您就會與眾不同。與此同時,可能您的信心大增,前途一片光明。俗話說得好:倉庫有糧,心中不慌!如果您平時沒有準備,那麼臨時匆匆忙忙地上陣面試肯定是要敗下來的。從2003 年開始是全國第一次擴招之後畢業人數最多的第一年,以後的畢業生還會更多,同時還有更多的研究生與本科生搶飯碗,面對就業的困境壓力不能說不大,痛苦在其中。還有就是我每天都要面臨那些看不完的自我介紹簡歷,很可惜幾乎都是清一色的“八股文”令人討厭。其實只要您的成績不是太差,分數不是應聘成功的關鍵,重要的是做人要踏實,不要有水分,實際上,只要將您平時做過的小製作寫成一篇心得,再帶上您的作品,“事實勝於雄辯”這樣更能打動人。還有很多經歷了四年本科又三年研究生階段學習行將畢業的碩士生,不僅不知道嵌入式操作系統是什麼東西,而且連C++都不能熟練掌握,驅動程序開發的能力就更不容提了,僅僅做了一個單片機的應用設計就拿到碩士文憑了,術業缺乏專攻泛泛而談,說句實在話,怎麼樣也教人無法接受啊!對於我來說,如果您沒有特別的才能,我寧願用三年時間培養一個好的本科生給更高的待遇,他肯定不比一般的碩士生差。所以,考上了研究生之後,您要時刻明白加強動手能力的培養和前沿科學技術的學習至關重要的,這是您將來面試的“殺手澗”,因為您畢業之後要求的工資待遇起碼是一般本科生的兩倍,但是這個錢不是那麼好拿的。頂多3-5 年的時間,大家肯定能夠看到一個現實,那就是如果您還不能熟練地掌握嵌入式操作系應用開發技術的話,您只能拿2000 元的月薪。即便您是研究生或是博士,那又有什麼稀奇的呢?鄧伯伯有句名言,不管白貓還是黑貓,抓住老鼠就是好貓!我們知道企業家是要賺錢的,否則這個企業就留不住人才,無情的市場競爭機制將會毫不猶豫地將這個老闆淘汰出局。一個可持續發展的企業,如果離開了富有聰明才智的優秀人才,那是不可想象的。光有幾個還不行,而是要有一個卓越的軍團。

其實就業的問題,對於一個努力的人來說是何等地簡單,我面試了300 多本科生,我只對其中幾個成績中等的本科生感興趣,他們主要是參加過2001 年全國電子大賽,有的是平時業餘時間,暑假及其寒假都在跟老師幹活的學生,與他們聊天真是一種莫大的享受和欣慰,對於我來說真的是如獲至寶。於是,我就立即勸他們,您的成績中等確實難以考上好的學校和導師還不如不考研究生以免浪費時間,同時也充滿自信告訴他們,“我就是伯樂!我願意給您機會和花錢培養您”。事實上,即便您考上研究生,如果沒有遇上具有超前眼光和經費充足的導師,您讀了也白讀,更何況現在的研究生擴招的這麼多?一個導師帶那麼多研究生,有那麼多課題嗎?即便有的話,他應付得過來嗎?可能殘酷的現實將會讓您看到,畢業之後回頭一看還遠遠不如當年同您一道畢業的同班同學。確實也是,人家的機會比您好得多,關鍵是人家對待機會比您把握得好,可以說:恰到火候。難道非要讀研究生理論水平才高嗎?這是何等地荒謬啊!我們知道電子與計算機技術的發展日新月異。大學的更新速度一定就要快嗎?回答是否定的,比如說推廣PHILIPS 的最新單片機和USB 技術吧!他們的更新速度肯定比一個可持續發展的企業要慢得多,難道說我們的人才水平不夠高嗎?我們公司就有一批這樣在各個領域裡出類拔萃的“年輕專家”從 2003 年開始,我們將會有一系列的專著在北京航空航天大學出版社出版,大多數的著作都來自於我們長期的基礎研究和應用開發,可以毫不誇張地說這些都是我們這個年輕團隊合作的結晶。他們是優秀和卓越的人才,他們沒有就業的壓力,他們不怕炒魷魚,相反我倒時刻要想盡辦法加強公司的管理,從工資,獎金,福利,生活和事業成就感等各個方面絞盡腦際善待人才和留住人才,這麼努力的人才根本就不需要過多地為工作和生活發愁,對於這個問題當然是仁者見仁智者見智,也就是下面我要講到的問題,一個人如何根據自己的特點、條件和機遇對自己如何定位的問題,也是至關重要的。

比如說,如果您對單片機的理解僅僅是入門水平的話,那麼您首先就應該低調一些,因為您主要的任務是為了尋找一個可以學習的機會,說句實在話,此刻此刻您一定要清醒地意識到:尋找伯樂比眼前的利益更加重要!因為您現在確實還沒有可以驕傲的資本,您一定要想盡辦法取得第一次正式踏入社會的入場卷,這對您來說是何等地重要啊!俗話說得好,“萬丈高樓從地起”您一定要尋找機會通過業績表現出您的能力,您確實與眾不同之處。這樣您就可能在一個公司裡樹立您的“信用”,有了信用之後隨之而來的機會將會越來越多,到那時您根本就不用不愁自己的待遇和地位問題了。所以對於一個剛剛步入社會的年輕人來說,您能夠做到以“誠信” 打天下,您將來的前途肯定是無限光明。千萬不要感到自己在班上的成績是前幾名或者相對來說自己的動手能力相比之下比同學強多少、多少,或者自己在讀書期間貸了多少款,或者家裡是多麼地缺錢,因為當您加入整個社會的競爭之後,這些都不是您要求高薪的理由,這個時候您的心態將可能會決定您的命運,因此對自己要有充分的認識和正確的估價,經常是很多學生用這些理由向我開出高價,我無話可說只好“搖頭和嘆息”。如果您的水平還不夠,我認為也不要自卑,要知道機會是時刻屬於有準備的年輕人,但也不可掉以輕心,此時此刻,您應該振作起來,立即拿起書本努力學習和加強實戰的訓練,待到羽翼豐滿之時大膽地走出去闖蕩,讓社會來對您做一個恰當的評價,然後再根據現實的情況不斷地調整自己,繼續學習和實踐,由於電子和計算機科學的高速發展呈現日新月異的變化局勢,您一定要明白:您距離失敗永遠只有6 個月!


黃華南同學


單片機的學習無外乎兩方便.一,電路 。二,編程語言。

先說電路,說到電路不得不提三本書。模電,數電,電路。可以說這三本書是學習電路的必經之路,學好這些,即使你不學單片機也可以找到一份薪資滿意的工作。當然現在大公司工作都是分工明確的,做電路的就做電路。單片機編程的就做編程。不過能進大公司的還是少數。大部分小公司要求你全能,也就是說一個項目你要從芯片的選型,到外圍電路的搭建,最後I/O口的定義,程序的編譯調試,最後PCB板的製作,焊接,調試等等,你都要掌握。當然你的工資也是客觀的。我的意思是學習單片機最好是要學習電路。


接下來學編程語言,單片機的編程語言是結構化的C語言。C語言的學習也不是那麼容易的,至少指針就夠你迷糊一段時間的。學習C你可以先系統的學習一段時間,做一些練習,不用著急去將它應用到單片機上。

前面是基礎,到你拿到第一個開發版的時候,你的單片機生涯就此展開了。

接下來介紹兩款工具。

1.keil。單片機的編程軟件,它可以幫你搭建一個編譯環境,並且為你編譯程序提供一個界面。最主要的是可以生成.hex文件,供下載使用。





2.protues。這是一個仿真軟件,可以仿真你的電路,也可以仿真你的單片機程序,前期沒有開發板時,可以用著軟件來學習。



最後給自己買一個開發板,認真學習裡面的例程。一塊接著一塊的學。



個人觀點。


餘輝431


對於單片機學習,不要想太多,最主要的是有單片機可以練習,和操作電腦是一個道理。

如果只給你一本電腦操作的書,沒有電腦可以操作,到頭來還是學不到多少東西,看到有一個有趣的新聞是在非洲老師教同學們關於微軟office系列軟件的使用,只是將界面在黑板上畫出來,沒有實際的電腦操作,效果可想而知。


現在的單片機很便宜,如果你沒有的話可以在網上買一個,網上相關東西太多了,隨便搜索一下,都是各種教程,你買單片機開發板會贈送你各種和該開發板有關的資料,有電子的、還有各種視頻。

這是在淘寶上搜到的,裡邊包含簡單的如CS51系列單片機,也有STM32系列單片機,


如果你是初學者可以從51單片機開始入手,這種單片機外設比較少,學起來比較簡單,可以先拿這個練手,一般包含如GPIO、UART、定時器等等,可以先從類似跑馬燈這種簡單的程序入手,在逐步學習定時器、串口操作,後期可以學習相應的中斷操作。


至於說編程語言建議你就直接用C語言就好了,不像我當初學單片機還是彙編語言呢。

現在一般開發環境可以用keil,現在版本為keil5,這個需要破解一下,注意別用在商業用途就可以了。

如果想多接觸一些單片機外設比如USB接口、以太網接口、CAN接口等等,可以繼續學STM32系列單片機,這個比較好的是它把底層驅動庫給你進行了封裝,這樣你就不用想MCS51系列單片機那樣操作底層接口。


最後,學好單片機主要還是要多練習,如果有項目的話那是最好了,那樣可以學以致用。

如果有什麼問題可以隨時交流。


雜文史料


單片機學習並不難,努力能夠成就一切。單片機是需要編程的,這就需要c語言或者彙編的基礎了,個人建議c語言要重點掌握。然後就是對編譯環境的熟悉,如IAR、Keil以及gcc等編譯軟件,要具體到對某個功能按鍵熟悉操作。完成了這些基本上就算開啟了單片機學習的大門了,然後就是觀看教學視頻,這是最重要的,畢竟有個好老師可以少走很多彎路,個人強烈建議用郭天祥老師的單片機教程!重點學習IO口操作、串口通信、時序圖的分析,功能芯片的編程,定時器等。同時,也需要學點調試的技巧,例如串口調試、斷點調試等。學完後不要洋洋自得,以為會了。要抱有謙卑的心態,學習的結果是要拿來實踐的,唯有實踐了,方可總結自己知識的遺漏。能夠獨立完成項目了,這才算是學好了,但也不能說精通!項目推薦:超聲波測距儀、電子鐘。能做到最後,你也可以自己開發項目,做個自信的攻城獅!


分享到:


相關文章: