單片機(jī)入門(mén)還能從51開(kāi)始嗎?
大家好,我是麥鴿,最近網(wǎng)友的一個(gè)提問(wèn),非常貼近很多初學(xué)者。
問(wèn)題是這樣的。
單片機(jī)入門(mén)還能從51開(kāi)始嗎? 現(xiàn)在ARM核和RISC核那么便宜,資料那么豐富,是不是沒(méi)有必要學(xué)51單片機(jī)了?瀉藥,當(dāng)然可以。
這里簡(jiǎn)單說(shuō)說(shuō)我的看法。
雖然ARM核和RISC核越來(lái)越便宜了,相對(duì)來(lái)說(shuō)硬件成本下降很多,并且配套的資料也很多了,看起來(lái)也是可以很快上手的。這里,對(duì)于新手來(lái)說(shuō),往往難住他們可能是這些;
- 開(kāi)發(fā)環(huán)境的搭建;
- 代碼中帶有中文的標(biāo)點(diǎn)符號(hào),比如“ ;”
- 燒錄程序到單片機(jī)上時(shí),各種驅(qū)動(dòng)沒(méi)裝對(duì),導(dǎo)致燒錄器或者串口無(wú)法識(shí)別,一臉懵 (′?_?`)
- 遇到一些硬件問(wèn)題或者軟件問(wèn)題就會(huì)感覺(jué)無(wú)從下手;
這是大多數(shù)和我交流過(guò)的同學(xué)的遭遇,包括我自學(xué)的時(shí)候,也會(huì)有這樣那樣的弱智問(wèn)題。解決之后才發(fā)現(xiàn)自己是真的愚蠢。
先說(shuō)51單片機(jī)架構(gòu)相比ARM和RISC沒(méi)有那么復(fù)雜,特別是IO是雙向輸出的,雖然功能簡(jiǎn)單,不像ARM的GPIO那樣,首先要配置時(shí)鐘,然后還要配置模式,輸入輸出,上拉下拉。七七八八配一堆,對(duì)于新手來(lái)說(shuō),這無(wú)疑增加了出錯(cuò)的概率。
同樣都是點(diǎn)個(gè)燈,51單片機(jī)幾個(gè)文件就夠了,幾行代碼,所以它的優(yōu)勢(shì)就是簡(jiǎn)單。上手難度小。
不過(guò)ARM架構(gòu),拿STM32來(lái)說(shuō),就有寄存器開(kāi)發(fā),標(biāo)準(zhǔn)庫(kù),HAL庫(kù),LL庫(kù),這些開(kāi)發(fā)方式。
使用寄存器開(kāi)發(fā),寄存器挺多的,要配置不少寄存器才能實(shí)現(xiàn)功能,對(duì)新手不太友好。
使用庫(kù)函數(shù)開(kāi)發(fā),比如標(biāo)準(zhǔn)庫(kù),HAL庫(kù),LL庫(kù)這些,那么一個(gè)工程模板一大堆C文件,還有一堆宏定義,還有封裝了很多的結(jié)構(gòu)體,指針的使用。需要一定C語(yǔ)言基礎(chǔ),如果這里基礎(chǔ)沒(méi)打好,可能調(diào)用庫(kù)都調(diào)不明白,云里霧里的,對(duì)不起,再去好好學(xué)學(xué)C語(yǔ)言吧。
所以,用51單片機(jī)入門(mén)很不錯(cuò) 的,雖然與目前市面上主流的脫節(jié)了,但是作為教學(xué)和入門(mén)還是很不錯(cuò)的。就像當(dāng)初微機(jī)原理,用的還是8086來(lái)做平臺(tái)進(jìn)行教學(xué),這也是一款很老舊的硬件平臺(tái)了。
最后學(xué)習(xí)51單片機(jī)作為入門(mén)真的很不錯(cuò),如果基礎(chǔ)比較好的同學(xué)可以直接上STM32進(jìn)行學(xué)習(xí),學(xué)習(xí)資料也多,資源也比較豐富,因人而異。
對(duì)于新手來(lái)說(shuō),還是把項(xiàng)目先跑起來(lái),建立正反饋,培養(yǎng)興趣,這樣才有繼續(xù)學(xué)習(xí)下去的動(dòng)力。
不然一上來(lái)就給自己上強(qiáng)度,難免會(huì)打擊信心,以上是我的看法。
對(duì)此,大家怎么看?歡迎在評(píng)論區(qū)留言討論。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。