在本教程中,我将向您展示如何在STM32F103C8T6蓝色药丸板上上传USB Bootloader。使用STM32F103C8T6 USB Bootloader,只需使用板载USB端口就可以轻松编程,而不需要任何外部硬件。
重要提示:我强烈建议你们看一下"从stm32f103c8t6开始教程中有许多非常重要的配置,设置,连接和解释。
简介
Arduino UNO(或任何Arduino板)的特别之处在于它的编程方便。只需插入Arduino到您的电脑,并使用Arduino IDE上传程序。这很简单(只要您有正确的驱动程序并选择了正确的USB端口)。
对于STM32F103C8T6蓝药丸板,就不能这么说了。如果你还记得在入门与STM32F103C8T6教程,我已经向你展示了如何上传程序到通用STM32F103C8T6板使用外部USB串行适配器。
使用FTDI适配器上传程序并不是一个困难的过程,但每次你想上传一个程序,你必须切换到编程模式,为了正常的操作,你必须切换回操作模式(在HIGH和LOW之间切换BOOT0引脚)。
如果我们可以利用Blue Pill板上自带的microUSB端口来上传程序,那就简单多了。STM32F103C8T6 USB Bootloader提供了这样的解决方案,您可以简单地通过USB端口将蓝色药丸插入到您的电脑上并上传程序。作为一个额外的好处,您不必摆弄BOOT引脚,因为您可以让它处于操作模式。
组件的要求
- STM32F103C8T6蓝色药丸板
- USB串行转换器(如FTDI编程器)
- 连接电线
- 1.8 kΩ电阻器(可选)
- 个人电脑
线路图
STM32蓝色药丸和USB串行转换器之间的连接类似于我在入门指南中描述的。下面是连接的参考图片。
上传STM32F103C8T6 USB Bootloader
为了通过蓝色药丸的USB端口上传程序,需要在MCU上安装USB Bootloader。感谢LeafLabs (Maple Bootloader)和rogerclarkmelbourne的贡献,一系列板的Bootloader回购可用。源代码可以在GitHub上找到这链接。
为了使事情更简单,repo由可下载的引导加载程序二进制文件组成(我将在后面的部分对此进行更多解释)。
使连接
第一步是将STM32蓝色药丸板连接到USB到串行适配器,如图所示。此外,BOOT0引脚制造高,即板被放入编程模式。
一旦这是做的,你可以连接USB串口转换器到PC,并检查COM端口。
下载Bootloader二进制文件
如前所述,此存储库由用于不同类型STM32板的不同二进制文件组成。所有这些二进制文件都是基于USER LED连接分类的。例如,我们知道您的蓝色药丸上的用户LED连接到端口C的引脚13,即PC13。
因此,二进制文件被适当地命名为generic_boot20_pc13.bin”。对于所有基于Blue Pill STM32F103C8T6的通用板,您可以使用这个二进制文件。您可以从这里下载二进制文件这GitHub链接。
如果你有不同的/定制板。然后从GitHub存储库中提供的二进制文件列表中下载适当的二进制文件。
上传USB Bootloader二进制文件到STM32
一旦硬件连接完成并下载了必要的二进制文件,就可以将STM32F103C8T6 USB Bootloader上传到MCU。为此,您可以使用STM32CubeProgrammer。
如果你还记得在入门与STM32F103C8T6指南,我已经从STMicroelectronics官方网站下载了STM32CubeProgrammer软件。如果你遵循了这个教程,那么你已经下载了那个软件,在我的例子中,可以在位置“C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin”中找到。在你的电脑中找一个类似的位置,打开“STM32CubeProgrammer.exe”文件。
在页面右侧,选择"UART作为通信模式,选择合适的COM端口。在我的例子中,它是COM4。将其他所有设置保留为默认设置,然后单击连接。
连接成功后,软件将读取flash中的内容并显示出来。接下来,点击显示下载箭头的符号。这将打开“擦除和编程”选项。
单击浏览并找到之前下载的二进制文件,即generic_boot20_pc13.bin文件。起始地址将自动填充为“0x08000000”。如果不存在,请输入该值。最后,点击“开始编程”选项。软件将开始上传USB Bootloader到MCU的Flash中,你可以看到下面的日志。
一旦二进制文件被上传,一个消息说“文件下载完成”将弹出。单击确定,最后单击右上角的断开连接。至此完成了STM32F103C8T6 USB Bootloader上传到单片机Flash的操作。在这一点上,你可以从蓝色药丸板断开USB到串行适配器,也可以切换回BOOT0引脚到LOW,即操作模式,因为你不需要它。
使用ST Flash Loader工具上传USB Bootloader
代替使用STM32CubeProgrammer软件,您可以使用一个替代工具称为ST Flash Loader。这也是STMicroelectronics官方提供的,你可以从这里下载这链接。
您必须登录ST的网站下载工具,一旦您完成下载,解压zip文件的内容,并双击“flash_loader_demo_v2.8.0.exe”文件。这将安装Flash加载器工具。
安装工具后,从这个位置打开它“C:\Program Files (x86)\STMicroelectronics\Software\Flash Loader Demo”通过双击“STMFlashLoader Demo.exe”文件。
在继续之前,确保STM32蓝色药丸板通过USART连接到USB到串行编程器,并且BOOT0引脚设置为高。
如果您已经连接USB到串行适配器到您的电脑,然后从下拉列表中选择正确的COM端口,然后单击下一步。如果一切顺利,您将收到一条消息,表示“Target is readable.”请按“下一步”进行。单击next。
在下一页中显示目标器的相关信息。单击next。
在下一页,选择“下载到设备”选项,并选择下载的二进制文件。之后,起始地址将自动填充为8000000。
当您点击下一步时,工具将开始上传USB Bootloader二进制文件到MCU。
如果一切顺利,就会收到“下载操作成功完成”的消息。关闭工具。
确保BOOT0引脚低,并从STM32板断开USB到USART转换器。
从USB接口编程STM32F103C8T6
安装必要的驱动程序
在继续之前,您需要下载一些驱动程序。首先,下载Arduino的STM32相关工具这链接。点击克隆或下载,点击下载ZIP。提取内容并将文件夹重命名为“Arduino_STM32”。复制此文件夹并粘贴到“C:\Users\TrailBlazer\Documents\Arduino\hardware”目录。
注意:在上面的路径中,“TrailBlazer”是我的用户名。换掉你的。如果目录Arduino\硬件不存在,那么创建一个。
以管理员权限打开命令提示符并导航到“C:\Users\TrailBlazer\Documents\Arduino\hardware\Arduino_STM32\drivers\win”目录。请先运行“install_drivers.bat”文件。这将安装Maple DFU驱动程序和Maple串行驱动程序。
运行“install_STM_COM_drivers.bat”文件安装STM串口驱动。
配置Arduino IDE
如果您的Arduino IDE已经打开,请关闭它,通过microUSB电缆将STM32蓝色药丸连接到PC,并重新启动IDE。在Arduino IDE中,转到工具,并对板选择器进行必要的更改,如在“入门到STM32F103C8T6”指南中提到的。
但是你需要改变上传方法选项为“Maple DFU Bootloader 2.0”。其余的设置将保持不变。
上传程序
为STM32F103C8T6蓝药丸板编写一个简单的Blinky Sketch作为示例程序。确保LED被选择为PC13,然后点击上传。该程序将通过STM32板的USB端口上传。
结论
一个循序渐进的教程上传USB Bootloader为STM32F103C8T6蓝色药丸板和编程使用板上microUSB端口在这里演示。
一个回应
谢谢拉。最好的和最全面和详细的Arduino为STM32解释。谢谢。
然而,一个问题:在成功安装驱动程序后,我试图将一个旧的(9年)Maple复杂程序移植到STM32_Smart板(STM32F103C8),这似乎非常类似于蓝色药丸。
我在清单上找不到“通用STM32F1系列”和它的C8变体(但找到了“通用STM32F103C系列”)。
另外,我找不到“上传方法Maple DFU Bootloader 2.0”。
我哪里做错了?是因为我用了另一块黑板吗?