STM32|Arduino STM32制作教程

1. 准备工作 文件:Arduino_STM32-master、STM32duino-bootloader-master,下载地址 https://github.com/rogerclarkmelbourne。
STM32|Arduino STM32制作教程
文章图片

将“Arduino_STM32-master”文件解压改为“Arduino_STM32”,放到“D:\Program Files (x86)\Arduino\hardware\”路径下。该文件是STM32的支持库,需要将其导入到Arduino的IDE之后,才可以编译生成STM32可以使用的hex程序文件。
STM32|Arduino STM32制作教程
文章图片

解压“STM32duino-bootloader-master”文件,其中“binaries”文件夹下即为固件,可根据自己需要选择,本例选择“generic_boot20_pb0.bin”。
硬件:STM32F1板子(B00T0能设为0/1)(STM32F103ZET6)、USB转TTL(安装驱动)。
安装Arduino软件,安装目录为“D:\Program Files (x86)\Arduino”。
2.固件下载 用USB转TTL连接PC和STM32F1板子。
STM32|Arduino STM32制作教程
文章图片

按“WIN+R”,输入“cmd”进入DOS界面。cd 到Arduino_STM32 \tools\win下面,将“generic_boot20_pb0.bin”(根据自己需求)文件拷贝到该文件夹下。

>>cd D:\Program Files (x86)\Arduino\hardware\Arduino_STM32\tools\win

从设备管理器上查看串口号(本例为“COM3”),将STM32F1芯片的BOOT0设置为1, 按1下“复位键”。
解除写保护
>> stm32flash.exe -k COM3

成功解除如下
stm32flash 0.4 http://stm32flash.googlecode.com/Interface serial_posix: 57600 8E1 Version: 0x22 Option 1: 0x00 Option 2: 0x00 Device ID: 0x0410 (Medium-density) - RAM: 20KiB(512b reserved by bootloader) - Flash: 128KiB (sector size: 4x1024) - Option RAM : 16b - System RAM : 2KiB Read-UnProtecting flash Done.

失败提示如下,检查串口号、BOOT0,是否按过复位,重新执行。
http://stm32flash.googlecode.com/Using Parser : Raw BINARY Interface serial_w32: 57600 8E1 Version: 0x22 Option 1: 0x00 Option 2: 0x00 Device ID: 0x0410 (Medium-density) - RAM: 20KiB(512b reserved by bootloader) - Flash: 128KiB (sector size: 4x1024) - Option RAM : 16b - System RAM : 2KiB Write to memory Erasing memory Got NACK from device on command 0x43 Can't initiate chip erase! Failed to erase memory

下载固件
>>stm32flash.exe -w generic_boot20_pb0.bin -v -g 0x0 COM3

固件下载成功后对应的PB0连接的LED先快闪,之后一直慢闪。不成功时检查串口号、BOOT0,是否按过复位,重新执行。
3.软件配置 3.1.驱动安装 以管理员身份运行“\Arduino_STM32\drivers\win\”文件夹下的“install_drivers.bat”和“install_STM_COM_drivers.bat”文件,有提示全部选择允许安装。
【STM32|Arduino STM32制作教程】STM32|Arduino STM32制作教程
文章图片

3. 2.IDE支持 打开Arduino软件,单击菜单栏中的“工具->开发板->开发板管理器”,安装“Arduino SAM Boards”,如下图。
STM32|Arduino STM32制作教程
文章图片

安装完成后重新打开IDE,设置如下
STM32|Arduino STM32制作教程
文章图片

4.程序下载
在IDE中编写如下代码
#define pinLED PB0void setup() { Serial.begin(9600); pinMode(pinLED, OUTPUT); }void loop() { digitalWrite(pinLED, HIGH); delay(1000); digitalWrite(pinLED, LOW); delay(1000); Serial.println("Hello World!"); }

将B00T0设为1,按复位,点击上传。
如果出现了下面提示,则检查B00T0是否设成1,按复位键重新上传。
stm32flash 0.4 Failed to init device.http://stm32flash.googlecode.com/Using Parser : Raw BINARY Interface serial_w32: 230400 8E1

上传成功后,将B00T0设为0,按复位,打开串口监视器,可以看到运行结果。
STM32|Arduino STM32制作教程
文章图片

吐槽:每次下载都要将B00T0设为1,虽然下载完能正常运行,但重启前还要设为0才能正常运行,太麻烦了,下篇介绍如何使用JLink OB下载!

    推荐阅读