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