02.21 單片機高手是這樣煉成的!這樣學習單片機事半功倍

現在的電子產品,隨便拿來一個拆開,都能看到單片機的身影,單片機在電子產品中已經成了標配。因為現在的電子產品都是以單片機為核心,根據不同的需求加以不同的外設電路,再做一些認證相關的設計工作,都是這個構架。以智能手環為例,可以實現步數統計、心率檢測、液晶顯示、與手機藍牙通訊、手機來電振動等功能,這些功能通過選用相關的傳感器、元器件來實現,最後單片機做數據處理和邏輯處理,核心還是單片機,功能框圖如下所示。

單片機高手是這樣煉成的!這樣學習單片機事半功倍

1-以單片機為核心的智能手環電路框圖

如今,各種家電、智能穿戴設備、各種數碼產品層出不窮,需求量越來越大,這也使得單片機工程師這個崗位需求量巨大,在不同的公司中,這個崗位有不同的稱呼,如單片機工程師、電子工程師、硬件工程師、數電工程師等。相對於互聯網程序員,單片機工程師低調的多,因為硬件是一個平臺,是幕後,所有的效果、界面都是由代碼呈現的,所以程序員成了臺上的明星。平臺可能只有一個,但是明星卻有很多,這就要求你這個平臺夠硬。可以單片機工程師的重要性並不亞於程序員,而單片機工程師的待遇也不會很差,前提是你要堅持住。

單片機高手是這樣煉成的!這樣學習單片機事半功倍

2-華為體脂秤的國產單片機,來自芯海科技

所以,單片機是一門很有用的技術,學會單片機可以找一份很好的研發崗工作,享受很好的工資待遇。但是萬事開頭難,在初學入門階段可能摸不著頭腦無從下手毫無頭緒,如果有了比較好的學習方法,單片機學習起來也是很有趣、很容易的。和大家分享一下單片機以及單片機C語言編程的學習方法。

1.選擇一塊合適的單片機開發板

單片機開發板集成了各種常用的外設資源,並有詳細的配套例程和教程,大大方便了初學者的學習。不管你是從51單片機開始,還是直接從STM32、AVR開始,建議選購一塊單片機開發板。大家在選擇開發板的時候,可以按照以下幾個方面認真篩選:

硬件資源的豐富程度,開發板配套的硬件資源越多,那初學者所接觸的內容也就越多,所涉及的知識面也就越廣,在後期擴展學習時也就越方便。

配套程序的豐富程度,

開發板還配備了和硬件資源相關的例程,在前期需要根據例程學習單片機寄存器的配置方式、要學習軟件控制硬件的原理,所以例程豐富利於初學者學習。

是否有及時的技術支持,在初學階段會碰到各種各樣的問題,問題可能很簡單但是需要別人的指點,如果有技術支持與之對接那就很容易解決在學習過程中遇到的各種問題,事半功倍。

頭文件不要選擇修過的,較大的開發板廠商都修改了單片機的頭文件,這麼做的目的是為了統一自己的風格,跟其他競爭對手區分開來,也保護了自己的消費群體,從短期來看這可能方便了初學者的學習,但是卻不推薦這麼做。因為用久了他們的頭文件,就會生疏原始的頭文件,如果換了另一種品牌的單片機可能很不習慣,甚至都不知道怎麼去使用原始的頭文件。我們學習的是單片機,並不是開發板廠商提供的平臺。

單片機高手是這樣煉成的!這樣學習單片機事半功倍

3-單片機開發板實物圖

2.先從GPIO口的配置開始學習

GPIO口是單片機最基本、最重要的資源,所有的外設資源都是通過連接GPIO口來實現的,單片機開發板也配套了很多與GPIO相關的硬件資源,例如流水燈控制、按鍵輸入檢測、蜂鳴器控制、繼電器控制、數碼管顯示、液晶顯示等,這些都是通過GPIO的輸入或者輸出功能來實現的。幾乎每一個初學者都是把流水燈作為入手單片機的第一個項目。通過這些基本的操作,初學者能學到單片機GPIO口的基本概念、配置方式還有相關硬件電路的設計原理,為後面的繼續學習打下堅實的基礎。

下面是典型按鍵輸入檢測電路和蜂鳴器驅動電路,通過這兩個電路可以學會很多基本的電路設計知識和程序設計知識。

單片機高手是這樣煉成的!這樣學習單片機事半功倍

4-基本的輸入輸出電路

圖中按鍵輸入檢測電路中的的電阻R75叫做上拉電阻,在按鍵沒有按下的時候單片機檢測到高電平,按鍵按下後檢測到低電平,這個電阻可以防止因引腳懸空所帶來的誤檢測。蜂鳴器 驅動電路中是通過三極管來控制蜂鳴器,電阻R76用作限流保護蜂鳴器,電阻R78用於下拉防止誤動作,這個電路中三級管工作在截止和飽和狀態。當單片機輸出高電平1時三極管飽和導通蜂鳴器發聲,當單片機輸出低電平0時三極管截止蜂鳴器不工作。

3.學習單片機重要的片上資源

單片機的功能之所以強大,是因為集成了很多片上資源,常見的如定時器功能、AD採樣功能、外部中斷資源、PWM功能等,合理的利用這些資源可以提高電路的設計效率、降低電路的設計難度,使技術方案更加優化、產品成本更低、性能更穩定。所以學習這些片上資源非常重要。

定時器/計數器功能,定時器可以實現計時功能,實現精確的定時、延時功能;而計數器可以實現外部時鐘源、脈衝源的計數功能,可以統計脈衝信號的個數,實現頻率/週期的計算等功能。

AD採用功能,這個功能可以實現模擬信號向數字信號的轉化功能,將模擬信號量化為數字信號,方便單片機處理。該功能在傳感器產品中應用比較多,比如溫度採集、電流採集等。配合相關元器件/敏感探頭的使用可以將環境中連續的物理量轉化為數字量,單片機處理後可以精確的得到實時的物理量的值。

中斷資源,所謂中斷就是優先級較高的事件把正在進行的事件打斷,中斷事件處理完畢後再接著處理剛才的事件,使用中斷資源可以節省單片機的資源,提高單片機的執行效率。

單片機高手是這樣煉成的!這樣學習單片機事半功倍

5-NTC溫度檢測電路

上圖是一個簡單的溫度檢測電路,感溫元器件使用具有負溫度係數的熱敏電阻NTC來實現,當環境溫度升高時NTC的阻值減小,那麼NTC兩端的電壓就變小,單片機通過AD採樣功能採集NTC兩端的電壓值,通過該電壓值反推出當前NTC的電阻值,再根據NTC電阻值和溫度的對應關係計算出當前環境的溫度值,從而實現了溫度傳感器的功能。

4.學習單片機的通訊功能

單片機帶有通訊功能,常用的通訊功能有UART、IIC、SPI、CAN、USB等,UART即可以實現通訊功能,又能實現單片機程序的下載功能,所以UART基本是單片機的標配資源。UART配合其他電平轉換芯片可以衍生出多種通信方式,如通過MAX232芯片可以RS232的通訊、通過MAX485可以實現RS485總線的通訊功能、通過42675可以CAN總線通訊等功能。除此之外,還可以通過UART實現wifi無線傳輸、藍牙無線傳輸和RF射頻等無線通訊功能。

單片機高手是這樣煉成的!這樣學習單片機事半功倍

6-RS485接口典型電路

上圖是通過MAX3845所實現的RS485接口電路,電平轉化芯片通過UART和單片機連接,實現數據的透傳功能,圖中的三極管用於通訊時的數據方向的切換。

按照以上步驟學習完,你應該對單片機掌握了一大半了,對常見的外設電路瞭解的也差不多了,接下來需要實戰一下。

5.參與/主導單片機項目

學習單片機的目的就是為了以後能夠用單片機設計出方案合理、性能穩定、成本佔優的產品,所以要抓住參與項目的機會,在項目中鍛鍊實踐動手能力,學會項目的開發流程。開發產品中會涉及到需求的分析、技術方案的制訂、芯片的選型、技術原理的實現、功能調試、各中認證等工作,最後才是產品的量產。同時,要學會和項目同事打交道,提升自己的項目領導能力。

單片機高手是這樣煉成的!這樣學習單片機事半功倍

7-產品開發流程

6.以動手為主,看書為輔

經常有朋友問我,讓我給推薦學習單片機的書籍。單片機不是一門偏重理論的課程,而是重在動手實踐。不建議大家以看書為主,在早些年的時候我也看過很多關於單片機教學的書籍,但是看多了就發現了問題,市面上很多關於單片機相關的書籍都是塑成形的基本內容大同小異,而且都是以單片機的數據手冊內容為主,或者是直接翻譯過去的,或者是直接摘錄的。任何一種芯片,最權威的資料永遠都是官網發佈的數據手冊,現在單片機廠商都很注重資料的分享和學習筆記的分享,甚至很多單片機廠商為了推廣單片機都做了各種技術方案掛在網站上。所以,大家在使用單片機的過程中遇到了問題首先要去翻閱數據手冊和官網的學習筆記,這是最直接有效的方法。

以上就是關於學習單片機的幾點建議,希望對大家起到一定的啟發作用。


分享到:


相關文章: