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.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
CSDN备用下载地址(网络不好的用户):点击下载
配置IDE
安装ArduinoSAMBoards板型文件
选择 工具 > 开发板 > 开发板管理器,打开如下界面选择 Arduino SAM Boards(32-bit ARM Cortex-M3) 安装,下图我已经安装好,所以只有删除键;未安装会有安装键。
https://img-blog.csdnimg.cn/20200320154810418.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
网络不好的请使用离线方式安装:
- 下载ArduinoSAMBoards离线安装包;
- 解压至C:\Users\Administrator\AppData\Local\Arduino15\staging\packages路径文件夹下;
- 然后再次进入开发板管理器选择安装(即可跳过下载过程直接安装)。
打开 工具 > 开发板 看到如图则安装成功:
https://img-blog.csdnimg.cn/20200320161033504.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
下载Arduino_STM32板型文件
下载ArduinoSTM32 及STM32duino-bootloader(后面刷固件使用)
Github下载地址:https://github.com/rogerclarkmelbourne/ArduinoSTM32
CSDN备用下载地址(网络不好的用户):点击下载
https://img-blog.csdnimg.cn/20200320160410101.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
下载完成后,将压缩包解压至Arduino IDE 安装路径的hardware文件夹中:
https://img-blog.csdnimg.cn/20200320161320315.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
重启 Arduino IDE,打开工具>板型,可见如图则安装成功:
https://img-blog.csdnimg.cn/20200320161657785.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
编译blink例程检测环境是否安装成功
选择Blink例程:
https://img-blog.csdnimg.cn/20200320160043473.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
选择板型,根据实际情况选择:
https://img-blog.csdnimg.cn/20200320160057114.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
点击编译,编译完成则环境搭建成功:
https://img-blog.csdnimg.cn/20200320160105529.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
上传固件
固件下载地址:https://github.com/rogerclarkmelbourne/STM32duino-bootloader
CSDN备用下载地址(网络不好的用户):点击下载
选择固件 "genericboot20pc13.bin" (pc13连接到板载LED)
https://img-blog.csdnimg.cn/20200320175506805.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
使用BinToHex转换软件将其转换为hex文件。
https://img-blog.csdnimg.cn/20200320163824202.png%7Cfig:]]
转换完成后,使用软件(记事本或者其他)打开hex格式固件,将首行数据 :020000040000FA 更改成 :020000040800F2(重要)。
https://img-blog.csdnimg.cn/20200320165414842.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
使用USB连接主控制至PC,打开设备管理器,可看见端口:
https://img-blog.csdnimg.cn/20200320171636149.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
使用mcuisp软件上传固件,板子需要boot0置1点击复位按钮进入烧写模式,软件需要选好端口并设置好如下图:
https://img-blog.csdnimg.cn/20200320171355123.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
固件烧写成功。
上传程序
方法1、IDE直接上传程序
选择板型、端口、烧写方式:
https://img-blog.csdnimg.cn/20200320171857186.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_FFFFFF,t_70%7Cfig:]]
板子需要boot0置1点击复位按钮进入烧写模式,然后点击上传:
https://img-blog.csdnimg.cn/20200320172042731.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29uZXBpZWNlODg=,size_16,color_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点击复位按钮进入烧写模式
- 烧写