大家好!今天來聊一聊新手是怎么自學(xué)stm32單片機!
自學(xué)stm32單片機四個步驟
從零基礎(chǔ)自學(xué)單片機,最后從事這個行業(yè)開發(fā)十多年,來分享下我的經(jīng)驗吧,不一定是最好的,但絕對是最靠譜的!
stm32單片機自學(xué)方法,主要是做好這四個步驟!
1.建立開發(fā)環(huán)境
我選擇的是通用的MDK,也就是Keil5。安裝完軟件以后,要安裝類似于芯片型號的庫,就是新建工程時選擇的芯片型號。
2.準(zhǔn)備一塊開發(fā)板和豐富的資料例程
推薦選擇最小系統(tǒng)板,個人感覺這樣可以自己學(xué)會外圍電路的搭建。避免依賴開發(fā)板的電路。(其實就是太窮,買不起開發(fā)板,哈哈)開發(fā)板這塊如果是新手建議買F103系列的,這個系列產(chǎn)品用的很多,也更容易上手。不要一上來就要干最高配,一口想吃成胖子最后大概率都是失敗結(jié)尾。
3.了解STM32這個階段可以看視頻教程,一般教程都會有基本的介紹
4.開始學(xué)習(xí)推薦使用庫函數(shù)開發(fā)的方法。這樣很多底層的寄存器不需要自己配置,只要會用官方庫函數(shù)就行了。配合庫函數(shù)使用手冊,可以清楚的查到每個函數(shù)的使用方法。
很多初學(xué)者面臨的難題就是不知從何入手。總想跟51一樣弄明白基礎(chǔ)的東西,又感覺太復(fù)雜。因此推薦先使用例程的工程文件,逐步學(xué)習(xí)如何修改。比如點亮流水燈的工程,對于IO口的操作并不太復(fù)雜,初始化完成之后通過Setbit和Resetbit這兩個函數(shù)就可以實現(xiàn)高低電平的輸出。然后,可以試著改一下亮滅,增加一個按鍵控制,中斷延時,等等。
當(dāng)你學(xué)到STM32的時候,說明已經(jīng)有一定的基礎(chǔ)了。
這個時候我建議你直接通過STM32開發(fā)的產(chǎn)品去學(xué)習(xí)單片機,這樣學(xué)完以后既學(xué)會了STM32,也有了產(chǎn)品思維,到時候拿著產(chǎn)品去面試,成功率也會高幾倍。
那這種產(chǎn)品去哪里找?這塊【華維單片機編程】有提供這樣的基于產(chǎn)品的開發(fā)板,往物聯(lián)網(wǎng)方向的。
整個硬件和軟件都是基于實際產(chǎn)品改版,學(xué)完以后可以無縫對接實際工作的產(chǎn)品開發(fā)。
最后說一下,很多人學(xué)STM32會犯的錯誤,就是總是想系統(tǒng)學(xué)習(xí),巴不得從內(nèi)核結(jié)構(gòu)要寄存器配置,到固件庫代碼都搞懂,這是不現(xiàn)實的
當(dāng)你有這種思維的時候注定要走很多彎路,很有可能會越走越遠!
并不是說有些基礎(chǔ)不重要,而是人在不同階段理解能力是不同的。
比如你是新手,剛學(xué)完C語言沒多久,你就想去吃透別人固件庫,現(xiàn)實嗎?
新手在第一階段的目標(biāo)很簡單,把stm32當(dāng)做一個工具,學(xué)會常用外設(shè)的使用,別的一律不管。
然后開始做項目,幾個項目下來,你再去研究他們固件庫學(xué)習(xí)下程序架構(gòu)會有不一樣的感受。
芯片嘛,我個人認為能用起來就行了,畢竟快速做出產(chǎn)品才是重要的。
總而言之。如果是剛?cè)腴T單片機的,建議還是從51單片機開始學(xué)起。8位機在實踐經(jīng)驗,是一個硬件工程師的基礎(chǔ),先不說4位機。
現(xiàn)在網(wǎng)上的普遍現(xiàn)象,有些自以為很牛逼的老鳥人建議直接越級學(xué)stm32單片機,很多人會學(xué)得很困難,理解上很有偏差,不排除有些人天賦異稟可以不必完全弄清楚硬件結(jié)構(gòu)和原理。
站在老鳥的角度,覺得stm32很簡單,站在新手的角度有多難和迷茫只有自己知道。
但相信大多數(shù)都喜歡單片機,就會有學(xué)單片機就學(xué)stm32的錯覺!
學(xué)習(xí)51單片機的目的,主要是培養(yǎng)直接調(diào)試寄存器與軟硬件接口bug的能力,內(nèi)部結(jié)構(gòu)和寄存器數(shù)量及難度都是一個新手可以接受的范圍,慢慢就認識了單片機
STM32復(fù)雜而多樣的內(nèi)部結(jié)構(gòu)和功能部件,光寄存器就可能上百個,軟件也是基于固件庫開發(fā),基本不會接觸到寄存器配置。
如果對這塊基礎(chǔ)的缺失會導(dǎo)致你后面在學(xué)習(xí)過程中,每學(xué)到一個知識點都是一臉懵逼,導(dǎo)致整體知識體系是畸形的!白白浪費時間
比如說為什么這么配置?配置怎么改?改出問題,要怎么解決,你都會繞很多彎路。
你以為自己直接學(xué)stm32是走了捷徑,實際花的時間更長,最后可能還學(xué)不會,然后被
所以,我一直要求我們?nèi)A維單片機編程的學(xué)員一定要從51開始學(xué)起,進行適當(dāng)?shù)闹R鋪墊,不要貪快。并不是每個人天賦很好,要穩(wěn)扎穩(wěn)打,可能這些人幾萬分之一!