回覆列表
-
1 # 使用者81209400690
-
2 # 漫漫開發路
我就說一說我的感受吧。
在一個專案中接觸過STM32系列的板子,當時跟著網上的配套教程一節一節聽下來的(課程還不少),每節課我都會自己動手把程式碼敲到開發環境中,下載到板子驗證,觀察實驗結果。雖然這種方式對於我這種初學者提升很快,但是因為我缺乏硬體背景知識,導致有一些高階主題我沒能透徹理解。例如電路圖,電氣特性,時序等,但不要被它們嚇到,不懂的先跳過,後面回過頭來再反覆揣摩。
我認為有如下幾個學習階段
1) 初學階段
板卡主要特性入門
GPIO輸入,輸出型別及控制(接收外部訊號輸入和輸出訊號到外部)
UART通訊:列印除錯資訊(單向),對接外部板串列埠通訊(雙向)
經過這個階段,跑個跑馬燈,控制簡單的開關裝置就沒問題了。
2) 進階階段
嵌入式幾種典型的主機通訊介面
I2C:感測器讀取
SPI: 主要用來讀寫Flash等
CAN: 電機驅動器通訊
485: 工控裝置通訊
3) 幹活階段
瞭解了以上基礎知識,接下來需要在真實的專案中進行實戰了。
這個階段,一般不會再跑裸機程式了,需要上一些任務排程框架了,例如FreeRTOS。
任務排程框架的特點是:一開始跟著教程跑簡單的小例程,還是比較輕鬆,但是一旦專案需求複雜,需要對多個具備優先順序的任務進行排程時,就需要考慮任務間的併發及死鎖了。比如,高優先任務可能始終將低優先任務阻塞。另外,任務間的資料共享及傳輸也需要考慮資料的保護及緩衝區保護。
在不斷實踐(受虐)過程中,你會慢慢熟悉各個知識點並精通開發環境中的各種除錯設施,這個時候就慢慢會有融會貫通的感覺了。加油!祝你早日打通任督二脈。
微控制器好像沒什麼太難學的吧?
考試都是最基本的知識點。
真正的難點在應用。比如數字濾波,PID調節,需要綜合各種能力。