想學會單片機其實沒那么復雜,先把心態放平穩,別被那些五花八門的名詞嚇住。一開始就得把 C 語言基礎打扎實,位操作、指針、函數這些概念必須吃透,尤其是指針,單片機里操作寄存器、外設經常要用到,搞不懂這個后面寸步難行。變量、宏定義這些基礎也得熟練,寫代碼的時候才能得心應手,不然寫兩行就卡殼,越學越沒信心。
基礎差不多了就找些靠譜的教程看看,正點原子、野火的資料都挺全,從入門到進階都有覆蓋,跟著視頻一步步做,比自己瞎琢磨效率高多了。關鍵是得動手,買塊開發板回來,stm32 的就行,性價比高,資料也多,對著教程寫代碼、燒程序、調 bug,看著 LED 燈亮起來、傳感器讀出數據,那種成就感能推著你往下學。調試的時候別嫌麻煩,單步運行、看寄存器狀態,這些過程能幫你理解程序是怎么跟硬件交互的,慢慢就把 uart、spi、iic 這些底層驅動摸透了,定時器怎么用、中斷怎么配置,練著練著就熟了,這就算是入了門。
存儲器這塊不用犯怵,單片機里就 flash 和 ram 倆東西,跟手機電腦的原理差不多,flash 存程序,掉電也丟不了,ram 存運行時的臨時數據,斷電就沒了,記著這個區別就行。匯編指令基本用不上,現在寫單片機程序幾乎都是 C 語言,真碰到需要匯編的地方,臨時查手冊也來得及,不用花大把時間專門學。
硬件方面得補補電路知識,《電路》《電力電子技術》這兩本書得翻一翻,不然外圍電路看不懂,畫個原理圖都費勁,更別說排查硬件故障了。有時候程序沒問題,結果硬件接線錯了,半天查不出問題,就是因為電路基礎不扎實。C 語言雖然是面向過程的,但寫復雜點的程序時,也能琢磨著用結構體把相關的變量和函數打包,再用函數指針實現模塊自己管理自己的邏輯,有點像 C++ 的類,雖然本質不一樣,但能讓代碼結構更清晰,維護起來方便。
想往深了學就看看 RTOS,ucos、freeRTOS 都行,理解多任務調度怎么回事,復雜點的項目離不了這個。還有各種協議棧,藍牙、zigbee、lwip 這些,看你往哪個方向發展,智能家居就多琢磨無線通信,工業控制可能更側重傳感器和執行器。要是搞圖像識別,那就研究相關的庫,一步步往上堆技能。
還有個歪門邪道,就是盯著面試題背,編個假簡歷去面試,聽面試官問什么就回來補什么,這么干的人不少,短期內好像能混進去,但真到了項目上啥也不會,早晚露餡。這種投機取巧的路走不遠,踏踏實實練出來的本事才是自己的,雖然慢點兒,但心里踏實。單片機這東西,就是個熟能生巧的活兒,多寫多調,遇到問題別慌,一點點排查,時間長了自然就摸到門道了。
-
單片機
+關注
關注
6076文章
45494瀏覽量
670245 -
硬件
+關注
關注
11文章
3594瀏覽量
69005
發布評論請先 登錄
stm8單片機怎樣盡快學會?
輕松學會單片機
如何快速學會單片機編程并應用? 精選資料分享
什么是單片機怎樣學習?單片機基礎知識及Proteus應用簡介資料概述
單片機的結構與原理是怎樣的和單片機的簡單應用概述
怎樣學會單片機?先學什么,怎么入門?
一個月可以學會單片機嘛?單片機編程學多久?
十天學會單片機可能嗎?單片機入門需要多久?
怎樣學會單片機?
評論