TESTPAGE
Arduino IDE 玩轉STM32 - 搭環境、刷固件、燒程序
背景:有arduino經驗,無STM32經驗;沒使用過keil,只玩過arduino IDE。手邊有兩款STM32F103C8T6的板子。兩款板子都帶USB串口芯片,一塊設計了自動下載,另一塊需要手動設置boot0置1(boot0/boot1),複位。
已下內容都是使用串口上傳數據(固件及程序)。沒有使用STLINK?jlink?。。。啥的?請用戶自行對照硬件,文章僅供參考。
適用於想使用Arduino IDE玩STM32的初學者,如有錯誤歡迎討論交流。
本人使用環境 window7 64位系統
Arduino IDE 環境搭建
下載 IDE
官網下載軟件並安裝:https://www.arduino.cc/en/Main/Software
https://img-blog.csdnimg.cn/20200320153529376.pngor_FFFFFF,t_70%7Cfig:]]
CSDN備用下載地址(網絡不好的用戶):點擊下載
配置IDE
安裝ArduinoSAMBoards板型文件
選擇 工具 > 開發板 > 開發板管理器,打開如下界面選擇 Arduino SAM Boards(32-bit ARM Cortex-M3) 安裝,下圖我已經安裝好,所以只有刪除鍵;未安裝會有安裝鍵。
https://img-blog.csdnimg.cn/20200320154810418.pngor_FFFFFF,t_70%7Cfig:]]
網絡不好的請使用離線方式安裝:
- 下載ArduinoSAMBoards離線安裝包;
- 解壓至C:\Users\Administrator\AppData\Local\Arduino15\staging\packages路徑文件夾下;
- 然後再次進入開發板管理器選擇安裝(即可跳過下載過程直接安裝)。
打開 工具 > 開發板 看到如圖則安裝成功:
https://img-blog.csdnimg.cn/20200320161033504.pngor_FFFFFF,t_70%7Cfig:]]
下載Arduino_STM32板型文件
下載ArduinoSTM32 及STM32duino-bootloader(後面刷固件使用)
Github下載地址:https://github.com/rogerclarkmelbourne/ArduinoSTM32
CSDN備用下載地址(網絡不好的用戶):點擊下載
https://img-blog.csdnimg.cn/20200320160410101.pngor_FFFFFF,t_70%7Cfig:]]
下載完成後,將壓縮包解壓至Arduino IDE 安裝路徑的hardware文件夾中:
https://img-blog.csdnimg.cn/20200320161320315.pngor_FFFFFF,t_70%7Cfig:]]
重啟 Arduino IDE,打開工具>板型,可見如圖則安裝成功:
https://img-blog.csdnimg.cn/20200320161657785.pngor_FFFFFF,t_70%7Cfig:]]
編譯blink例程檢測環境是否安裝成功
選擇Blink例程:
https://img-blog.csdnimg.cn/20200320160043473.pngor_FFFFFF,t_70%7Cfig:]]
選擇板型,根據實際情況選擇:
https://img-blog.csdnimg.cn/20200320160057114.pngor_FFFFFF,t_70%7Cfig:]]
點擊編譯,編譯完成則環境搭建成功:
https://img-blog.csdnimg.cn/20200320160105529.pngor_FFFFFF,t_70%7Cfig:]]
上傳固件
固件下載地址:https://github.com/rogerclarkmelbourne/STM32duino-bootloader
CSDN備用下載地址(網絡不好的用戶):點擊下載
選擇固件 "genericboot20pc13.bin" (pc13連接到板載LED)
https://img-blog.csdnimg.cn/20200320175506805.pngor_FFFFFF,t_70%7Cfig:]]
使用BinToHex轉換軟件將其轉換為hex文件。
https://img-blog.csdnimg.cn/20200320163824202.png%7Cfig:]]
轉換完成後,使用軟件(記事本或者其他)打開hex格式固件,將首行數據 :020000040000FA 更改成 :020000040800F2(重要)。
https://img-blog.csdnimg.cn/20200320165414842.pngor_FFFFFF,t_70%7Cfig:]]
使用USB連接主控制至PC,打開設備管理器,可看見端口:
https://img-blog.csdnimg.cn/20200320171636149.pngor_FFFFFF,t_70%7Cfig:]]
使用mcuisp軟件上傳固件,板子需要boot0置1點擊複位按鈕進入燒寫模式,軟件需要選好端口並設置好如下圖:
https://img-blog.csdnimg.cn/20200320171355123.pngor_FFFFFF,t_70%7Cfig:]]
固件燒寫成功。
上傳程序
方法1、IDE直接上傳程序
選擇板型、端口、燒寫方式:
https://img-blog.csdnimg.cn/20200320171857186.pngor_FFFFFF,t_70%7Cfig:]]
板子需要boot0置1點擊複位按鈕進入燒寫模式,然後點擊上傳:
https://img-blog.csdnimg.cn/20200320172042731.pngor_FFFFFF,t_70%7Cfig:]]
電路設計帶自動下載的一塊板子,IDE無法正常上傳程序,應該是無法正常進入燒寫模式;但使用mcuisp、STMicroelectronics flash loader上傳都可以,而且非常方便,無需手動設置。
方法2、STMicroelectronics flash loader軟件上傳 bin文件(arduino IDE 導出已編譯的二進制bin文件)
板子需要boot0置1點擊複位按鈕進入燒寫模式:
方法3、MCUISP 軟件上傳 hex 文件
- 需要將導出的二進制程序bin文件轉換為hex文件
- 更改首行數據 :020000040000FA >> :020000040800F2(重要)。
- 板子boot0置1點擊複位按鈕進入燒寫模式
- 燒寫