准备用STM32的开发板写一个直流无刷电机BLDC的驱动程序,对Arduino IDE的编程模式比较熟悉,通过相应的插件,Arduino IDE同样可以支持STM32。
另外因为手头没有STM32的下载器,需要通过串口烧录程序。准备先用一个Samples中的点亮LED的示例来跑通这个STM32的开发流程,没想到竟然折腾了差不多一天的时间,不懈努力,不轻言放弃,最后才在STM32开发板上,通过Arduino IDE,串口烧录程序,成功点亮了IDE。看到IDE一闪一闪,体验了成功的喜悦。
记录一下折腾的过程。
手头的STM32开发板的型号为STM32F401CxUx。本来准备买来做USB声卡的。
一、软件安装
1、在Adruino IDE中安装STM32开发板插件。
点击Adruino IDE File菜单,选择"preferences.."
点开”Additional boards manager URLS" 添加STM32开发板的URL
打开左下方的连接,打开网址,查找STM32的官方链接。拷贝后加入到列表中。
打开Board Manager面板
安装STM32插件
安装好之后,tools菜单中会出现STM32芯片的选项
2、安装STM32CubeProgrammer
到ST的官网注册下载STM32CubeProgrammer,下载STM32CubeProgrammer后安装,并安装STM32的Bootloader串口驱动程序。
安装好之后,设备管理器会出现STM32 bootloader设备
二、串口连接STM32
为了让电脑识别STM32的串口,需要设置STM32的BOOT0, BOOT1引脚,网上搜了一大遍,知道了设置BOOT0=1, BOOT1=0启动。但是把STM32板子前后翻了一个遍,也没找到这两个引脚在哪里。
最后问店家要了STM32板子的文档,耐心的看了一下文档。终于知道怎么设置BOOT0,BOOT1
把板子上的拨码开关1和3用一根牙签拨到ON的位置。即可设置成"System memory"的启动模式。
打开STM32CubeProgrammer,选择USB,COM端口选COM1.即可连接STM32成功。这时可以通过STM32CubeProgrammer下载烧录。
三、Arduino IDE连接STM32
首先要将STM32CubeProgrammer程序所在的目录添加到系统的PATH路径中,因为Arduino将调用命令行的STM32CubeProgrammer_CLI程序
选择STM32板子,COM1端口,将上传模式更改为DFU模式
至此,所有的设置完成。
三、烧录测试BLINK代码
打开Arduino的闪灯Blink例子,编译上传,提示上传成功。
可是,这个LED就是没有闪。
用牙签把BOOT0,BOOT1恢复,拔掉USB重启。仍然不闪。反复实验,浪费了几根牙签后,依然无果。。。
最后即将放弃的时候,看到有篇文章说要更改一下LED的管脚,打开STM32的图一看,LED连接到PC13引脚。
把代码中的LED_BUILTIN全部改成PC13, 编译上传。
奇迹出现了。
小蓝灯终于闪了。
一天的功夫啊
PS:说明书中的文字绿灯应该是蓝灯