请问STM32Duino开发环境是怎么配置的?
STM32Duino:突然心血来潮,想到STM32Duino这个东西,就是在Arduino IDE 上开发STM32的板子。以前遇到过这种开发模式,但是没有亲自上手设置过。搞了大半天,查看了好多的文档和视频,看别人都是设置成功了,但是我却搞不赢,不过最后还是鼓捣成功了(在开发环境的配置上的从来没有一帆风顺过)你在看我这篇文章之前可以通读一遍再操作!!
踩坑:我就索性自己再写一个流程,再总结一下里面的坑!
drivers | 在里面的win文件夹下放的有用到的maple串口驱动安装文件(稍后安装) |
STM32F1 | F1支持文件 |
STM32F4 | F4支持文件 |
tools | 里面有三种操作系统对应的烧录程序对应的文件夹,在win里面的stm32flsah.exe 可以提供烧录BootLoader使用(稍后说明) |
硬件端的设置(接线)
- 在示例中找到Blink 例程 并打开
- 在工具>开发板XXX的下拉菜单中选择Generic STM32F103R series
- 在variant中选择STM32F103RC(48KRAM 256KFlash)
- 在Upload method中选择STLink
下载动图演示
- 将STLink与STM32开发板连接(记得使用5V连接)
- 给STM32额外供上电(如果你的STLink不能自己供电时使用)
情况1
BOOT0 = 0,BOOT1 = 0
在这种情况下可以正常给板子下载进去程序,并且按复位键也没事儿,程序不会中断
情况2
BOOT0 = 1,BOOT1 = 0
在这种情况下可以给板子下载进去程序,但是按下复位键后程序即停止执行,再次下载程序后才会运行
方案B:软件端的设置(使用CH340G烧录器下载)
- PA8对应STM32的LED0,PE2对应STM32的LED1
- 为什么会产生不同的接法出现不同的现象,你可以去了解一下STM32的BOOT模式的相关文章
- 这种烧录方法不能让STM32打印数据,就是Serila.print()函数不能使用,没有办法解决么?有的,继续往后看
硬件端的设置(接线)
- 在示例中找到Blink 例程 并打开
- 在工具>开发板XXX的下拉菜单中选择Generic STM32F103R series
- 在variant中选择STM32F103RC(48KRAM 256KFlash)
- 在Upload method中选择serial
[tr]CH340G端单片机端[/tr]
- 插上CH340G烧录器,获得串口(在设备管理器中查看)
- 如果没有引出的RX、TX引脚地话,那就得接到PA口的串口引脚上,接发如下图
GND | GND |
5V | 5V |
RX | PA9(TX) |
TX | PA10(RX) |
总结
- 由于在我的测试中有这种情况下大概率载不进去程序的情况出现,可能是我的问题,但是你如果可以使用的话也可以采用串口下载
- 同样也需要设置BOOT0/1的电平,但是都得看你自己鼓捣喽
- 代码打开方法以及需要修改的地方同上操作
maple串口驱动的安装
- 这个串口不是PA8、PA9的那种串口,而是从STM32F103RC板子上带的那个供电的Mini USB生成的串口
- 这个串口的出现需要安装驱动,并且没有烧录Bootloader的话不会出现
- 更多的东西可以在这里了解 点击链接查看
烧录
- 参考上面的步骤三的方案B的CH340G烧录接线法接即可
- 安装ST官方的FlashLoader工具(在文章开始有安装包链接)
- BOOT0 = 1,BOOT1 = 0,一定要这样接哦,要不软件不会识别的,然后在烧录完成后恢复默认
gd32f1_generic_boot20_pc13.bin | STM32C8T6 |
generic_boot20_pa1_button_pa8.bin | STM32RCT6 |
结果
- 烧录完成后记得把BOOT0 = 0,BOOT1 = 0
烧录
- 注意在烧录时BOOT1 = 0,BOOT 0 =1
查看步骤一的STM32_Arduino的tools文件夹下的win文件夹
- 烧录的文件跟上面一样,但是这次方式变了,使用文件中自带的烧录程序stm32flash.exe进行烧录
然后在cmd命令行中打开这个位置
- 记得把需要烧录的bin文件复制到这个地方,方便查找·
晶振频率 | 72M | 16M |
价格 | ¥6-13 | ¥13-35 |
可扩展性 | 优(引脚多,精度高) | 良 |
- 这篇文章算是我的踩坑记录,有些问题我也没整明白,或者不详细,或者有错误。如果你看到的话可以评论哦
- 更加详细的说明请移步 Github
- 怎么回退,直接插上ST-Link下载一个STM32的示例代码就都回来了
更多回帖