Arduino IDE 編寫STM32代碼無下載器 串口下載

準(zhǔn)備用STM32的開發(fā)板寫一個(gè)直流無刷電機(jī)BLDC的驅(qū)動(dòng)程序,對(duì)Arduino IDE的編程模式比較熟悉,通過相應(yīng)的插件,Arduino IDE同樣可以支持STM32。
另外因?yàn)槭诸^沒有STM32的下載器,需要通過串口燒錄程序。準(zhǔn)備先用一個(gè)Samples中的點(diǎn)亮LED的示例來跑通這個(gè)STM32的開發(fā)流程,沒想到竟然折騰了差不多一天的時(shí)間,不懈努力,不輕言放棄,最后才在STM32開發(fā)板上,通過Arduino IDE,串口燒錄程序,成功點(diǎn)亮了IDE??吹絀DE一閃一閃,體驗(yàn)了成功的喜悅。

記錄一下折騰的過程。

手頭的STM32開發(fā)板的型號(hào)為STM32F401CxUx。本來準(zhǔn)備買來做USB聲卡的。

STM32F401.JPG
STMF401CxUx.JPG

一、軟件安裝

1、在Adruino IDE中安裝STM32開發(fā)板插件。

點(diǎn)擊Adruino IDE File菜單,選擇"preferences.."


preferences.png

點(diǎn)開”Additional boards manager URLS" 添加STM32開發(fā)板的URL

打開左下方的連接,打開網(wǎng)址,查找STM32的官方鏈接??截惡蠹尤氲搅斜碇?。


STM32_BOARD_URL.png

打開Board Manager面板


board_manager.jpg

安裝STM32插件


install_stm32_board.jpg

安裝好之后,tools菜單中會(huì)出現(xiàn)STM32芯片的選項(xiàng)


tools_menu_stm32.jpg

2、安裝STM32CubeProgrammer

到ST的官網(wǎng)注冊(cè)下載STM32CubeProgrammer,下載STM32CubeProgrammer后安裝,并安裝STM32的Bootloader串口驅(qū)動(dòng)程序。


STM32CubeProgrammer.jpg

安裝好之后,設(shè)備管理器會(huì)出現(xiàn)STM32 bootloader設(shè)備


bootloader.jpg

二、串口連接STM32

為了讓電腦識(shí)別STM32的串口,需要設(shè)置STM32的BOOT0, BOOT1引腳,網(wǎng)上搜了一大遍,知道了設(shè)置BOOT0=1, BOOT1=0啟動(dòng)。但是把STM32板子前后翻了一個(gè)遍,也沒找到這兩個(gè)引腳在哪里。

最后問店家要了STM32板子的文檔,耐心的看了一下文檔。終于知道怎么設(shè)置BOOT0,BOOT1


BOOT_modes.jpg
BOOT_SETTINGS.jpg
boot_switch.jpg

把板子上的撥碼開關(guān)1和3用一根牙簽撥到ON的位置。即可設(shè)置成"System memory"的啟動(dòng)模式。

打開STM32CubeProgrammer,選擇USB,COM端口選COM1.即可連接STM32成功。這時(shí)可以通過STM32CubeProgrammer下載燒錄。

STM32CubeProgrammer_connection.jpg.png

三、Arduino IDE連接STM32

首先要將STM32CubeProgrammer程序所在的目錄添加到系統(tǒng)的PATH路徑中,因?yàn)锳rduino將調(diào)用命令行的STM32CubeProgrammer_CLI程序


STM32CubeProgrammer_cli.png.jpg

選擇STM32板子,COM1端口,將上傳模式更改為DFU模式


STM32CubeProgrammer_DFU.jpg

至此,所有的設(shè)置完成。

三、燒錄測(cè)試BLINK代碼

打開Arduino的閃燈Blink例子,編譯上傳,提示上傳成功。


blink_sample.jpg

blink_upload_completed.jpg

可是,這個(gè)LED就是沒有閃。

用牙簽把BOOT0,BOOT1恢復(fù),拔掉USB重啟。仍然不閃。反復(fù)實(shí)驗(yàn),浪費(fèi)了幾根牙簽后,依然無果。。。

最后即將放棄的時(shí)候,看到有篇文章說要更改一下LED的管腳,打開STM32的圖一看,LED連接到PC13引腳。


STM32_PC13.jpg

把代碼中的LED_BUILTIN全部改成PC13, 編譯上傳。

奇跡出現(xiàn)了。

小藍(lán)燈終于閃了。

一天的功夫啊

PS:說明書中的文字綠燈應(yīng)該是藍(lán)燈

?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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