TESTPAGE

從 YFRobotwiki
在2020年3月21日 (六) 16:00由Allblue對話 | 貢獻所做的修訂版本

跳到: 導覽搜尋

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點擊複位按鈕進入燒寫模式:
20200320174929565.gif

方法3、MCUISP 軟件上傳 hex 文件

  • 需要將導出的二進制程序bin文件轉換為hex文件
  • 更改首行數據 :020000040000FA >> :020000040800F2(重要)。
  • 板子boot0置1點擊複位按鈕進入燒寫模式
  • 燒寫