STM32替換Arduino直通車

前言(廢話較多,可直接滾動(dòng)到教程)

眾所周知,用Arduino進(jìn)行開(kāi)發(fā)簡(jiǎn)單快捷,一個(gè)項(xiàng)目能很快的做好,而Arduino相比STM32,貴且性價(jià)比也很低,Arduino Uno可用的針腳也少得可憐,怎么辦??換做STM32吧!STM32高性能,STM32的最小系統(tǒng)版價(jià)格很低,對(duì)我這種窮學(xué)生來(lái)說(shuō)是福利?。∮谑俏遗d致勃勃的淘了STM32的最小系統(tǒng)版準(zhǔn)備入坑STM32。


可接下來(lái)我就要下載各種各樣的軟件進(jìn)行編程,燒錄,寫個(gè)最簡(jiǎn)單的Blink程序都非常麻煩,折騰我一天。


要是能像Arduino一樣簡(jiǎn)單方便快捷就好了,怎么辦呢?那么現(xiàn)在正式開(kāi)始教程!

所需工具

1,STM32最小系統(tǒng)板,配套數(shù)據(jù)線,20元以下的就可以了。
2,Arduino(不是必須,但如果你不想買USB轉(zhuǎn)TTL就可以把Arduino用作USB轉(zhuǎn)TTL)或者USB轉(zhuǎn)TTL模塊一個(gè)。
3,跳線數(shù)根。

教程

1,配置Arduino并下載所需的文件

首先我們下載這個(gè)人開(kāi)源的Arduino-STM32項(xiàng)目


下載下來(lái)并解壓


Arduino快捷方式右鍵打開(kāi)文件所在位置,將解壓下來(lái)的文件移動(dòng)到如下圖所示目錄,并將文件夾改名為STM32


接下來(lái)是重點(diǎn),打開(kāi)Arduino,進(jìn)入開(kāi)發(fā)板管理器,安裝如下圖所示的開(kāi)發(fā)板文件


安裝完后選擇你的STM32開(kāi)發(fā)板型號(hào)


Arduino新建一個(gè)空文件,點(diǎn)擊左上角的驗(yàn)證按鈕,看看能不能編譯,如果可以就繼續(xù)


2,為STM32下載和燒寫B(tài)ootloader

接下來(lái)我們需要用USB轉(zhuǎn)TTL給STM32燒錄Bootloader,首先我們要下載Bootloader,進(jìn)入剛剛那個(gè)人的另一個(gè)開(kāi)源項(xiàng)目,這個(gè)地址:
https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries
選擇你的STM32最小系統(tǒng)板的D2所對(duì)應(yīng)的接口名字的文件下載(一定要選擇對(duì)應(yīng)的)
比如我這里找到開(kāi)發(fā)板的原理圖,D1是通電后的指示燈,D2是另外的LED燈,它連接了PC13針腳

那么我就選擇這個(gè)文件下載


下載完成后,我們要燒錄這個(gè)文件到STM32里,我們先下載所需要的軟件,叫做FlyMcu。
下載地址:https://pan.baidu.com/s/1bqkVY6j
密碼:vygm

然后,這里我用Arduino代替USB轉(zhuǎn)TTL進(jìn)行燒錄,降低額外的成本。

需要注意的是,STM32的BOOT0要接上VCC高電平,BOOT1要接上GND低電平,然后按STM32版上的REST按鈕使之重啟進(jìn)入ISP下載模式,我們才可以燒錄Bootloader進(jìn)去(重要)。


然后我們還可以看到,PA9是TX,PA10是RX。STM32的TX連接Arduino的RX(0接口),STM32的RX連接Aruidno的TX(1接口)。
緊接著,如果要把Arduino用作USB轉(zhuǎn)TTL一定要把Arudino的RST接口一直連接Arduino的GND!Arduino連接電腦,STM32也要供電!


OK,恭喜你來(lái)到了這一步,接下來(lái)我們要用FlyMcu燒錄程序,但FlyMcu無(wú)法燒錄.bin文件(可以打開(kāi)但無(wú)法燒錄),這時(shí)我們要需要把剛剛下載下來(lái)的Bootloader從.bin文件轉(zhuǎn)換成.hex文件進(jìn)行燒錄!
所以我們還需要一個(gè)軟件,來(lái)完成這個(gè)操作,叫做BinToHex。
下載地址:https://pan.baidu.com/s/1kWkFGgB
密碼:ox9g

選擇我們剛剛下載的bootloader文件,然后選擇文件夾導(dǎo)出成.hex文件,隨便取個(gè)名字。


這時(shí)我們還需要很重要的一步,將生成的.hex文件用文本編輯器打開(kāi),將第一行的:020000040000FA更改成:020000040800F2(非常非常重要)



緊接著保存退出,我們打開(kāi)FlyMcu,選擇已經(jīng)修改好的.hex文件,點(diǎn)擊開(kāi)始編程


注意,如果長(zhǎng)時(shí)間無(wú)法連接,請(qǐng)按STM32版上的RST按鈕或者斷電重試!
如果燒錄Bootloader成功,并且STM32版是通過(guò)USB連接電腦供電的話,你的電腦會(huì)提示你USB設(shè)備異常,這是沒(méi)用安裝正確的驅(qū)動(dòng)造成的,我們打開(kāi)設(shè)備管理器看一下


3,為電腦安裝連接STM32的驅(qū)動(dòng)

解決這個(gè)問(wèn)題,接下來(lái)我們安裝驅(qū)動(dòng)程序。
進(jìn)入我們之前下載的文件目錄,點(diǎn)擊下圖所示的.bat文件安裝驅(qū)動(dòng),一定要要管理員身份運(yùn)行



success就是成功了,我們按STM32上的RST鍵,隨著電腦的提示音,這時(shí)我們?cè)倏纯丛O(shè)備管理器


我們發(fā)現(xiàn)多了一個(gè)串口,如果不行就重啟電腦試一試。

4,用Arduino IDE為STM32燒錄Blink程序

最后我們打開(kāi)Aruidno IDE,選擇上傳程序的模式,如下圖


然后寫入一個(gè)Blink程序

void setup() {
  pinMode(PC14, OUTPUT);
}

void loop() {
  digitalWrite(PC14, HIGH);
  delay(50);
  digitalWrite(PC14, LOW);
  delay(50);
}

隨著紅色的“Done!”和電腦一聲USB提示,STM32自動(dòng)重啟,然后連接在STM32PC14接口上的LED開(kāi)始閃爍了!


以后我們不需要額外的硬件,直接用數(shù)據(jù)線連接STM32最小系統(tǒng)版和電腦,并打開(kāi)Arduino IDE就可以像玩Arduino一樣簡(jiǎn)單方便快捷了!

教程結(jié)束,如果博文有錯(cuò)誤或者有疑問(wèn),歡迎評(píng)論來(lái)告訴我,謝謝!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容