最近在用simpleFOC调试电机,simpleFOC库针对开源硬件平台Arduino编写的,所以想先用arduinoIDE先熟悉simpleFOC库和源码后,再做裁剪和优化移植到STM32平台上去。
硬件介绍

硬件使用STM32F103C8T6最小系统板,官方叫做Bluepill,某宝上面一大堆。需要注意芯片是STM32还是其他国产的兼容芯片。我测试过GD32F103C8T6,WCH32F103C8T6,这两个可以用STM32CubeMX生产的程序直接下载,但是在ArduinoIDE里面很多功能都无法正常使用,比如SPI接口,时钟设置等。所以要用arduinoIDE开发的话还是要用STM32F103,不要用兼容芯片,否则出了问题都不知道怎么解决。目前STM32对ArduinoIDE的支持是最到位的。详细可以参考stm32duino的GitHub说明,还有stm32duino论坛。
开发过程
安装stm32duino开发板
首先需要在ArduinoIDE里面安装STM32的支持包,有两个版本,一个是stm32duino官方版,具体参考Getting started;另一个版本是rogerclark的版本,具体参考STM32F103C8T6在Arduino IDE里编程。亲测觉得官方版更稳定一些,配置端口也更灵活。推荐新手直接用官方版的
烧录方式

烧录方式主要有三种,三方方式的原理各不相同:可以参考Upload methods
- 用STLink烧录器烧录,需要单独的烧录引脚SWIO、SWCLK。如果习惯了用MDK开发,手上有STLink,这种方式是最稳定,速度最快的。上图中STM32CubeProgrammer(SWD)就是这种方式,BMP(Black magic Probe)应该也是这种方式,需要BMP烧录器,具体没有测试过。目前我使用的方式
- 用串口烧录,需要TX、RX引脚,并通过USB转串口工具连接电脑。先把Boot0接3.3V,boot1接0V,从SRAM启动,程序烧录完成后,再把boot0接0,从Flash启动。这种方式比较麻烦。上图中STM32CubeProgrammer(Serial)就是这种方式
- USB烧录,直接用开发板上的USB接口烧录,不需要额外的硬件支持。这种方式的优点是不需要额外的硬件。但是需要先给芯片烧录一个引导程序,也就是BootLoader,这个BootLoader需要占用一定的flash空间。上图中的STM32CubeProgrammer(DFU)、HID BootLoader(2K)、Maple DFU BootLoader(20K)、Maple DFU BootLoader original都是这种方式。

本文介绍了如何使用ArduinoIDE配合STM32F103C8T6(Bluepill)调试开源电机控制库SimpleFOC。强调了STM32兼容芯片可能带来的问题,推荐使用官方STM32芯片。详细阐述了STM32在ArduinoIDE中的开发板安装、烧录方式(STLink、串口、USB),并对比了不同烧录方式的优缺点。此外,还讨论了BootLoader的选择和USB接口作为串口的配置选项。
9707

被折叠的 条评论
为什么被折叠?



