本來(lái)想的是認(rèn)認(rèn)真真地做一部ARM內(nèi)核的MCU教程和文檔,這個(gè)入口最好的芯片切入口就是STM32。然而最不湊巧的是,現(xiàn)在STM32無(wú)論哪一個(gè)型號(hào)都是一“芯”難求。以至于我Layout好的開(kāi)發(fā)套件資料,又被藏進(jìn)了硬盤(pán)的最深處。尋尋覓覓了好久,我每天一有時(shí)間就在網(wǎng)上尋找各種適合學(xué)習(xí)的芯片,其中不乏有iMxRT系列,GD32系列等等主流的M4內(nèi)核芯片。經(jīng)過(guò)長(zhǎng)期的尋覓,我發(fā)現(xiàn)現(xiàn)有的這些ARM-Cortex M芯片大致可以分成兩類,第一類是存在了很長(zhǎng)時(shí)間的一線大廠的芯片,如iMXRT,LPC,ATSAMS等,這一類芯片是長(zhǎng)期獨(dú)立于STM32這種體系存在的,因此開(kāi)發(fā)流程和庫(kù)函數(shù)等和STM32大相徑庭,但是考慮到性價(jià)比完全比不上漲價(jià)之前的意法半導(dǎo)體同價(jià)格產(chǎn)品,因此暫時(shí)棄之;另一類是意法半導(dǎo)體漲價(jià)之前就已經(jīng)存在,漲價(jià)之后由幕后走向臺(tái)前的類“STM32”芯片,這一類芯片除了將STM32換成了GD32,HK32之外,其余的基本都和STM32 Pin to pin兼容,軟件開(kāi)發(fā)也與STM32大同小異。這里補(bǔ)充一點(diǎn),如果等我們這個(gè)“朝花夕拾”系列做完,STM32價(jià)格還是這么高,我就真的使用GD32來(lái)講解了。
圖1 “琳瑯滿目”的XX32
由上述內(nèi)容可以看出,STM32的漲價(jià)對(duì)于我最早的規(guī)劃來(lái)說(shuō),其實(shí)是有很大影響的,就在我苦苦尋找之際,有天上午,我本來(lái)要搜索意法半導(dǎo)體(ST)的,結(jié)果手抖了多打了一個(gè)C,緊接著,一個(gè)熟悉的網(wǎng)站映入眼簾。“要不做一期51單片機(jī)吧”一個(gè)念頭從我腦中閃過(guò)。當(dāng)然,這個(gè)51單片機(jī)并不是我們很早之前熟悉的那款,而是51單片機(jī)的魔改版或者說(shuō)增強(qiáng)版,那么,這個(gè)到底是什么單片機(jī)呢?當(dāng)然還是51單片機(jī)。
圖2 不解釋
其實(shí)我做增強(qiáng)型51單片機(jī)教程的決定,并不是那么隨意的做出的。我前面早就說(shuō)過(guò),單片機(jī)終究是單片機(jī),一塊可以被我們使用的芯片而已。那么我們選用它的原因無(wú)非就是性價(jià)比,就比如我們使用的這個(gè)芯片STC8A8K64S2A12,它是一款內(nèi)置24MHz高速晶振,有4個(gè)串口,5個(gè)定時(shí)器,12位15通道的ADC,IIC和SPI等外設(shè),8KB SRAM和64K flash的1T超高速51單片機(jī)。最重要的是,它的價(jià)格才4元左右(現(xiàn)在價(jià)格小批量漲到了7元左右)。可能有些讀者印象中的51單片機(jī)外設(shè)還是那種帶著74HC573和八段數(shù)碼管動(dòng)態(tài)掃描的老掉牙的算法,在這個(gè)增強(qiáng)型的8位內(nèi)核的單片機(jī)上,擴(kuò)展一些如SPI LCD,RTC,F(xiàn)LASH甚至是WIFI模組完全沒(méi)有任何問(wèn)題,因此我首先將開(kāi)發(fā)板設(shè)計(jì)成了一個(gè)可以遠(yuǎn)程操作和遠(yuǎn)程控制的產(chǎn)品,因?yàn)橐院笪覀兊木幊坦ぷ髦?,網(wǎng)絡(luò)內(nèi)容肯定會(huì)接觸地越來(lái)越頻繁。
圖3 增強(qiáng)型51單片機(jī)資源
然而,我最焦慮的一個(gè)問(wèn)題就是,51單片機(jī)的開(kāi)發(fā)語(yǔ)言C51和標(biāo)準(zhǔn)的C語(yǔ)言是不一樣的,內(nèi)部用了很多關(guān)鍵詞,如只能用sfr定義的一些特殊功能寄存器等。如果使用C51寫(xiě)程序,確實(shí)在移植的時(shí)候會(huì)有很多地方需要修改。因此,我又自己仿造STM32固件庫(kù)寫(xiě)了一個(gè)51單片機(jī)的固件庫(kù),目的是將C51的關(guān)鍵詞減到最少,或者只將其限制在程序的最底層。
圖4 51單片機(jī)固件庫(kù)調(diào)試
這個(gè)“增強(qiáng)型51單片機(jī)教程”被我歸類到了“朝花夕拾”系列,為什么以“朝花夕拾”命名呢?回顧我第一次接觸單片機(jī)到現(xiàn)在已有將近15年,在這15年間的前4年是學(xué)校生涯,在這4年的“朝陽(yáng)時(shí)光”里,我自學(xué)了51,AVR,MSP430,STM32等單片機(jī),這些單片機(jī)的學(xué)習(xí)對(duì)我的工作技能其實(shí)是有很大幫助的,但是不得不承認(rèn),對(duì)于它們的學(xué)習(xí),只不過(guò)走馬觀花,并沒(méi)有一個(gè)深入的研究。因此希望借助這一套系列教程,再來(lái)審視一下這些“大清早的花朵”。
最后,我覺(jué)得這一套視頻教程適合兩類人群,一類是零基礎(chǔ)的初學(xué)者,增強(qiáng)型51單片機(jī)有著51單片機(jī)傳統(tǒng)的簡(jiǎn)單,因此特別容易上手;第二類人群是具有基礎(chǔ)的同學(xué),再回來(lái)看一下51單片機(jī),你一定會(huì)有提升的。
《樂(lè)創(chuàng)C語(yǔ)言講義》很成功,這也離不開(kāi)大家的支持,我也會(huì)繼續(xù)推出優(yōu)秀的作品,一如既往地服務(wù)大家。