2019-02-21 10:10:27分類:嵌入式硬件開發設計6196
本人與單片機系統打交道已15年有余,熟悉單片機系統的軟件、硬件開發,曾主持或參與開發過的單片機系統產品,大大小小的項目不計其數,現與廣大熱愛單片機系統開發的工程師、在校大學生等朋友分享本人原創的單片機軟件硬件技術開發經驗。
本文旨在引導尚未入門的朋友快速進入單片機系統之門,已經熟悉單片機系統開發的朋友敬請拍磚指教或留言補充信息,后續分享的技術文章將逐步深入。
一、入門知識儲備
想學習單片機系統的開發,必須先有以下幾個方面的知識儲備:
(一)微機原理
(二)C語言編程
微機原理既是計算機技術的入門課程,也是單片機的入門課程。其實單片機就是一臺“高度濃縮的計算機”,其基本原理與計算機及其相似,單片機麻雀雖小,計算機的五臟俱全。
C語言是目前單片機開發的必備編程語言。單片機軟件在N年前是用匯編語言開發的,每種單片機的匯編語言都不一樣。由于采用匯編語言開發單片機軟件太過于復雜,效率及其底下,現在基本上都用C語言開發單片機軟件了,僅在一些很特殊的場合才需要用到匯編語言,例如要求精確控制CPU某段程序的執行時長。如果還沒有C語言基礎,建議先學C語言再學單片機。
二、單片機系統開發基本條件
條件之一:手上必須有單片機實物。學習單片機重在動手,在腦子里空想是學不起來的。可以自己用電路設計軟件(如Altium Designer等)做一塊電路板;或者直接上某寶買一塊現成的單片機開發板。
條件之二:單片機程序下載器或在線仿真器。這個設備一般沒有通用的,單片機系列不同,仿真器也不同。直接上某寶,搜“XXX單片機仿真器”,一般都能找到你想要的。
條件之三:在PC機上安裝好單片機開發平臺。單片機開發平臺也叫單片機開發環境,是單片機軟件代碼的編輯工具和代碼編譯工具的結合體。單片機品牌和系列不同,其開發平臺也不一樣,例如STM8可以用IAR進行軟件開發,也可以采用ST公司自己開發的STVD進行軟件開發。
具備以上三個條件,你就可以開工了。
三、后話
雖然世界上的單片機種類有上千種,但單片機技術基本上是相通的,只要掌握了一款單片機的開發,以后遇到其他品種的單片機就非常容易上手了。如果學習第一款單片機需要2個月時間,那么學習第二款單片機就只需要2天時間。
以上只是談到單片機系統開發的最基本的條件,但我們知道單片機最終還是應用于產品之內的,單片機系統開發最終還是為了產品開發。因此,僅僅學會單片機軟件編程還是遠遠不夠的。一款單片機系統產品從項目立項到最終實現產品量產,其中涉及到的方方面面技術問題還有很多很多,例如如何選擇最合適的單片機、硬件的電磁兼容問題、軟件的bug調試和軟件可靠性、數字量和模擬量信號采集、一般高低電平輸出和PWM輸出、操作系統、產品成本…,太多太多了!