该 STM32开发板房的 STM32F103C8微控制器越来越越来越流行得益于它的ARM Cortex M3架构,它具有很高的运行速度和更多的外设选项。此外,由于该板可使用Arduino IDE轻松编程,因此它已成为许多爱好者和工程师快速原型制作的首选。
在之前的教程中,我们学习了STM32开发板的基础知识,并对它进行了编程以使LED闪烁。但是它有一个巨大的缺点。为了对开发板进行编程,我们使用了FTDI编程器模块,还必须在上载和测试代码时在引导0跳线和1位置之间切换,这无疑是一项艰巨的任务。此外,开发板上的mini-USB端口完全未使用。这样做的原因是,购买STM32开发板时, 它没有配备Arduino就绪的引导加载程序 ,因此,通过USB连接时,您的计算机将无法找到该开发板。
但希望有一个由 LeafLabs 为Maple迷你板开发的实验性引导加载程序 。该引导加载程序可以一次刷新到STM32中,然后我们可以像使用其他Arduino板一样直接使用STM32板的USB端口上载程序。但是,在编写本教程时,此引导加载程序仍处于开发阶段,对于关键应用程序不建议使用。在继续阅读本教程之前,请确保您已阅读上一教程,以了解该板的基础知识,包括有关规格和引脚的详细信息。
所需材料
- STM32 –(BluePill)开发板(STM32F103C8)
- FTDI程序员
- 面包板
- 连接线
- 上网笔记本电脑
电路原理图
要直接通过USB端口对STM32 Blue Pill板进行编程, 我们需要先将Maple引导加载程序闪存到MCU中。为此,我们需要使用串行FTDI板。该板连接到STM32的Rx和Tx引脚,如下所示。
FTDI板的Vcc引脚连接到板上的STM32 5V引脚。地线连接到STM32的地线。FTDI板的Rx和Tx引脚分别连接到STM32的A9和A10引脚。其中A9是STM32 MCU的Tx引脚,而A10是Rx引脚。
在上传引导加载程序时,确保板上的引导0跳线引脚设置为1(编程模式)。引导加载程序刷新后,可以将该引脚改回初始位置(工作模式)。
将Maple Boot加载程序上传到STM32开发板
完成上述连接后,将FTDI板连接到您的计算机,并按照以下步骤将引导加载程序刷新到STM32中。
步骤1: 我们必须从github页面下载引导加载程序文件的二进制文件(bin文件)。Bin文件有很多版本,Blue Pill板使用此github链接,然后单击下载按钮以下载bin文件。
步骤2: 接下来,我们必须下载并安装STM Flash loader软件,以将下载的bin文件闪存到STM32中。单击此链接进入ST网站并滚动到底部,然后单击获取软件
步骤3:要下载软件,您必须输入您的电子邮件地址,下载链接将发送到您的电子邮件中。然后点击链接返回网站,再次单击“获取软件”,下载将开始。是的,这有点令人沮丧,但这是应该这样做的方式。不要忘记检查您的垃圾邮件文件夹中的电子邮件,有时电子邮件需要花费几分钟的时间。
步骤4:下载后,安装软件,确保STM32板通过FTDI板连接到计算机,然后启动软件。如果不使用设备管理器,软件将自动检测COM端口,并确保选择正确的COM端口号。在我的情况下是COM4。保留其余设置,如下所示。
步骤5: 两次单击Next(下一步)按钮,软件将再次自动检测板的详细信息并显示如下。我们使用的板卡是具有128K闪存的STM32F1。
步骤6: 在下一步中,选择“下载到设备”并浏览到我们在步骤1中下载bin文件的位置,然后选择它。点击下一步。
步骤7: 该软件将下载一些必需的文件,如下所示,然后将开始刷新过程。
步骤8: 成功完成闪烁后,我们将显示以下屏幕。单击关闭并退出应用程序。我们已成功使用Arduino引导加载程序刷新了STM32板。现在,我们必须准备Arduino IDE并安装驱动程序,然后才能对STM32板进行编程。
准备Arduino IDE并安装驱动程序
请按照以下步骤下载并准备与STM 32开发板一起使用的Arduino IDE。
步骤1: -如果尚未安装Arduino IDE,请从此链接下载并安装。确保选择正确的操作系统。
步骤2: -在安装Arduino IDE之后,打开并下载STM32开发板所需的软件包。这可以通过选择 File-> Preferences 来完成 。
第3步: -单击首选项将打开下面显示的对话框。在其他的Boards Manager URL文本框中,粘贴以下链接
dan.drown.org/stm32duino/package_STM32duino_index.json
然后按确定。
步骤4: -现在转到 工具->董事会->董事会经理 。这将打开“ Boards manager”对话框,搜索“ STM32F1”并安装出现的软件包。
步骤5: 安装软件包后,导航至C:\ Program Files(x86)\ Arduino \ hardware \ Arduino_STM32-master \ drivers \ win,您将在其中找到 install_drivers.bat 和 install_STM_COM_drivers.bat 。
步骤6: 单击两个bat文件并安装驱动程序。您将获得一个DOS屏幕,如下所示。
现在,Arduino IDE已准备好对STM32(Blue Pill)开发板进行编程,并且还安装了驱动程序。
通过USB端口直接编程STM32(Blue Pill)
从STM32上卸下FTDI板和所有现有连接。只需使用STM32板上的micro-USB端口将其连接到计算机,如下所示。确保 跳线0插针重新置于0 (工作模式)。此后,我们不再需要切换跳线来上传和运行程序。
您的计算机现在应该可以发现该板了。如果看到任何其他驱动程序正在安装,请稍等。然后进入 设备管理器 ,检查是否在“ COM和端口”部分下找到了您的STM32板,如下所示。地雷连接到名称为Maple Mini的COM8。
转到 工具 并向下滚动以找到通用STM32F103C系列,如下所示。然后确保变体为 64k Flash类型 ,CPU速度为 72MHz ,并将上载方法更改为 STM32duino Bootloader 。还要根据设备管理器上的端口选择正确的COM端口。
完成所有更改后,检查Arduino IDE的右下角,您应该注意到已设置以下设置。我的STM32开发板已连接到COM8,但您的可能有所不同
现在,Arduino IDE准备好对STM 32 Blue Pill开发板进行编程了。让我们将示例闪烁程序从Arduino IDE上传到STM32 Blue Pill开发板上,以确保一切正常。可以在以下位置找到示例程序
在打开的示例程序中, 我们必须进行一些小的更改。默认情况下,该程序将为PB1编写,但是板上的LED指示灯已连接到PC13, 因此将所有PB1替换为PC13 ,我们可以继续进行。 修改后的 完整示例程序也可以在此页面的底部找到。
单独显示 循环 功能中的代码 如下所示,我们可以注意到PC13引脚在高电平(接通)下保持1000毫秒,然后在低电平(断开)下又保持1000毫秒,这是无限次的,因为它处于 循环 功能。因此,LED似乎以1000毫秒的间隔闪烁。
digitalWrite(PC13,HIGH); //打开LED(HIGH是电压电平) delay(1000); //等待第二个 digitalWrite(PC13,LOW); //通过使电压 低延迟(1000)来关闭LED ;//等待一秒钟
按下Arduino IDE上的上载按钮,您的程序应被编译并上载。如果一切都按预期工作,那么您应该在Arduino IDE控制台上看到以下内容。
如果该程序已成功上传,则您应该看到绿色LED指示灯每隔1秒闪烁一次,如下 视频 所示。您也可以在程序中随意调整以增加或减少延迟。现在,您可以像使用其他Arduino板一样开始使用STM32(蓝色药丸)开发板,即您不再需要更改跳线的位置或使用外部硬件来上传和测试程序。
希望您理解了该教程,并发现它对于 入门STM32 Board很有帮助。如果您有任何问题,请将其留在评论部分,并告诉我将来我们应该使用此STM32开发板尝试哪些项目。