TESTPAGE

来自YFRobotwiki
2020年3月21日 (六) 16:00Allblue讨论 | 贡献的版本

跳转至: 导航搜索

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点击复位按钮进入烧写模式
  • 烧写