最近有不少學弟新入微控制器的坑,萬事開頭難。作為乙個比較陌生的領域,再結合我當時入坑時的一些問題,寫下這篇部落格,希望能夠給初學者一些啟發。1. 開發板的選擇
學習stm32,不能繞開的第一件事,那就是開發板。
開發板的意義:
開發板提供了足夠的資源,包含硬體資源和軟體資源。硬體資源,即開發板上自帶的led、蜂鳴器、顯示屏、以及其他晶元,可以讓我們學習某一部件的時候可以直接上手;軟體資源,即開發板配套的課程、例程。這些都是廠家根據這款開發板的特性設計的,新手很適合這樣一步一步學習。
開發板除錯外設非常方便。在後續自己做專案的時候,自己需要用到的很多東西,可以借助開發板來測試。舉個例子,如果你想做乙個產品包含陀螺儀,開發板自帶的陀螺儀就可以幫助你測試自己的程式有沒有問題,而不需要你去購買陀螺儀,再去連線。
綜上,就是我總結的開發板的作用。那麼如何選擇一塊適合自己的板子呢?可以從下面幾個方面綜合考慮:
資料。資料對於程式設計人員的意義不言而喻,這裡主要推薦正點原子和野火兩家,這兩家都是做開發板的知名廠家了,資料非常豐富,基本涵蓋了你stm32學習過程中的所有需要的資料,硬體,軟體,官方,拓展資料,等等等等。課程在b站平台也可以直接**。
**:硬體不比軟體,只要一台電腦,就可以學到天長地久了。開發板的**也是我們必須考慮的重要方面。這裡的**,其實只要就是區分於購買的配件和開發板型號的選擇。
踩坑經歷:筆者曾經購買過兩次正點原子的開發板。第一次,閒置了一段時間,後來才發現蜂鳴器是壞的,但是已經過了日期,無法更換了。另一次是剛購買到手,仔細檢查後,發現缺少了乙個電阻,遂順豐包郵寄回並更換。配件的話,當時我也不懂,購買了顯示屏後,也一直閒置了。
2. 開發環境搭建
**:cubemx不用說,注意別安裝在包含中文目錄裡就行。
再說一下keil的破解,這個網上的教程都很多,現在最新的貌似都能破解到2023年了。。。mdk也是睜乙隻眼閉乙隻眼。放乙個教程:
驅動的話,需要安裝jlink/stlink和ch340的驅動,安裝好這些,才能保證電腦能夠連線微控制器。
3. 學習建議
還有就是庫的學習,st是為stm32推出過標準庫、hal庫、ll庫的。標準庫在新出的晶元中已經不再提供了,可以說是逐漸淘汰了。用的最多的那就是hal庫,配合cubemx非常方便,所以推薦大家直接學習cubemx配置hal庫的教程,hal庫容易上手的原因就是他可以忽視硬體層,但是,我們在學習的時候還是要學的透徹一點,把原理學會。
最後,再說說我對於微控制器這個東西的看法,微控制器,就是乙個運算的平台,他可以把你的程式僅僅用乙個小晶元來實現,微控制器不同於電腦的cpu,它包含了許多最基本的外設,讓你可以直接把他當做乙個小電腦來用,所以我們關注的不是微控制器基礎部分的學習,而是應該注重如何把這麼個小玩意兒用於你的專案中。所以,大家一定要帶著專案去學習微控制器。
比如,我想做乙個小車,微控制器可以提供電調、陀螺儀等等各個感測器資料的讀取。但是,資料如何處理,處理完的資料應該如何運用,才能讓你的小車跑起來,這才是我們應該思考的事情。
附:stm32學習路線
stm32基礎入門
1 開發工具,初學者建議mdk,後期ivr 2 暫存器開發or庫 版本開發 先暫存器開發,後期兩者結合 3 軟體 or開發板,先軟體 後期兩者結合 建立工程 1 包含三部分 start user lib output outlist資料夾 並設定 outlist目錄 用來存放生成的中間檔案 outp...
STM32學習 入門
嵌入式系統定義 以應用為中心,以計算機技術為基礎,軟硬體可按需求進行定製,從而滿足各種設計指標。與通用計算機系統不同在於它是為某些特定任務而設計的。體系結構 嵌入式硬體 處理器 外圍裝置 嵌入式軟體 作業系統 應用軟體 微控制器與微處理器 常見外設介面和匯流排 嵌入式作業系統 搶占式排程機制 響應時...
STM32基礎學習
最近在學stm32,遇到了一些問題,也解決了一些,望大家糾正。韌體庫外設驅動檔案引入方法 1 加入你要加入的.c檔案 2 在path中加入你的相對應的.h 3 就是一定要將stm32f10x conf.h配置中的相對應的標頭檔案取消注釋。暫存器版本的error l6218e undefined sy...