使用 Arduino IDE 编程你的 STM32

2023-11-30 / 0 评论 / 167 阅读
温馨提示:
本文最后更新于 2023-11-30,已超过半年没有更新,若内容或图片失效,请留言反馈。

 

许多电子爱好者和工程师开始接触电子产品时,Arduino是他们的第一块开发板。然而,随着接触越多和深入挖掘,很快就意识到 Arduino 还没有为工业做好准备,而且它的 8 位 CPU 的速度非常慢,不能为您的项目提供足够的动力。不过,现在市场上有新的STM32F103C8T6 STM32开发板,它拥有 32 位的 CPU 和ARM Cortex M3 架构可以轻松超越 Arduino 。并且我们可以使用Arduino IDE对STM32板进行编程。在本文中,我们开始使用 STM32F103C8T6,了解有关此板的一些基础知识并使用 Arduino IDE对其编程, 实现板载 LED 灯闪烁。

  • STM32(Blue Pill)开发板介绍

STM32F103C8T6 开发板是 ARM Cortex M3 微控制器的开发板。它看起来与 Arduino Nano 非常相似,如下图所示。

image.png

它上面的单片机芯片是 STMicroelectronics 的STM32F103C8T6,该MCU 可以在深度睡眠模式下运行,非常适合使用电池供电的应用。由于 MCU 的工作为3.3V,因此该板还包含一个 5V 至 3.3V 的降压 IC为 MCU 供电。即使 MCU 在 3.3V 下运行,它的大多数 GPIO 引脚都可以承受 5V。开发板上有两个板载 LED,一个(红色)用于电源指示,另一个(绿色)连接到 GPIO 引脚 PC13。它还有两个插针引脚(跳线帽),可用于切换不同的模式。

  • STM32 引脚详情

STM32 Blue Pill 板的完整引脚如下所示。正如你所看到的,G 表示接地引脚,3.3V 输出稳压 3.3V,5V 引脚可用于为电路板供电或通过微型 USB 获得+5V供电。板载 LED 连接到微控制器的 PC13引脚。

image.png

与 Arduino 板不同的是,STM32 通过 boot 1 和 boot 0 切换不同模式。一般情况下,Boot 1 的位置通常保持不变,把boot 0 跳线设置为 3.3V 用于串口下载,或者设置为接地用于上电或复位后进入正常工作。

  • 如何编程 STM32F103C8T6

STM32 只是 STMicroelectronics 系列的另一个微控制器。因此,现有的 ARM 芯片编程方法也可以用于 STM32 板。Keil ARM MDK 是一种著名且常用的 IDE,除此之外我们还可以使用 IAR workbench、Atollic TrueStudio、MicroC Pro ARM、Crossworks ARM、Ride 7、PlatformIO+STM32 等。但是,使该板广受欢迎的原因之一在于它能够使用 Arduino IDE 进行编程。许多arduino爱好者通过这种方式,可以立即开始使用 STM32 构建项目,因为他们熟悉 Arduino IDE 及其易于使用的编程语言和现成的库。所以这篇文章中,我们使用Arduino IDE 开始 STM32。

  • FTDI连接图

使用 Arduino IDE 对 STM32 Blue Pill 板进行编程,我们需要使用串行板FTDI。该板连接到 STM32 的 Rx 和 Tx 引脚,如下所示。

image.png

FTDI板的Vcc管脚连接到板子供电的STM32 5V管脚。地连接到STM32的地。FTDI板的Rx和Tx引脚分别连接到STM32的A9和A10引脚。其中 A9 是 STM32 MCU 的 Tx 引脚,A10 是 Rx 引脚。

image.png

  • 为 STM32准备 Arduino IDE

按照以下步骤安装并准备与 STM 32 开发板一起使用的 Arduino IDE。
第 1 步:安装Arduino IDE。
安装步骤(略)
第 2 步:安装 Arduino IDE 后,打开并下载 STM32 开发板所需的包。这可以通过选择“文件 -> 首选项”来完成。

image.png

第 3 步:单击“首选项”将打开下面显示的对话框。在 “附加开发板管理器网址”文本框中粘贴以下链接,点击 “好”。

http://dan.drown.org/stm32duino/package_STM32duino_index.json

image.png

第 4 步:转到 工具 -> 开发板…->开发板管理器。这将打开“开发板管理器”对话框,搜索“STM32F1”并安装出现的包。

image.png

image.png

第5 步: - 安装完成。转到“工具”并向下滚动找到通用 STM32F103C 系列,选中如下图:

image.png

第 6 步: 现在,将 FTDI 板连接到计算机,并在设备管理器检查 FTDI 板连接到哪个 COM 口。然后,在“工具”->“端口”中选择相同的端口号:

image.png

第 7 步: 完成所有设置后,检查 Arduino IDE 的右下角,显示了已经配置的信息。我的 FTDI 板连接到 COM3,但你的可能不同,但是芯片信息确保为 64kFlah 类型,CPU 速度为 72MHz,上传方式为 Serial。

image.png

到这里 Arduino IDE 已准备好对 STM 32 Blue Pill 开发板进行编程了。

  • 上传示例代码到STM32f103c8t6

让我们将板载LED闪烁示例程序从 Arduino IDE 上传到 STM32 Blue Pill 板。示例程序可以在 文件—>示例中找到。

image.png

在打开的示例代码中,我们必须做一点小小的修改。默认情况下,该程序是为PB1编写,但在我们的开发板上,板载LED连接到PC13,因此将所有PB1更换为PC13。最后会给出修改后的完整示例程序。

loop函数内部的代码如下所示,我们可以注意到 PC13 引脚保持高电平(开启)1000 毫秒,然后再转低(关闭)1000 毫秒,高低一直循环。因此,LED 以 1000 毫秒的间隔闪烁。

digitalWrite(PC13, HIGH); // turn the LED on (HIGH is the voltage level)delay(1000); // wait for a seconddigitalWrite(PC13, LOW); // turn the LED off by making the voltage LOWdelay(1000); // wait for a second

如前所述,在上传任何程序之前必须将 STM32 板设置为串口上传模式,为此将boot 0 跳线置于低电平。如下所示:

image.png

确保 boot 0 短接1的位置,然后按下复位按钮,绿色 LED 熄灭,这表明板子已准备好上传。点击 Arduino IDE 上的上传按钮,您的程序应该被编译和上传。

image.png

如果程序成功上传,您应该会看到绿色 LED 以 1 秒的间隔闪烁。您还可以修改程序,增加或减少延迟来改变闪烁速度。

上传程序后,boot 0 应该短接回0位置,这样下次板子上电时,上传的程序就开始自动执行了。

本文到此结束,希望能对你开始使用Arduino IDE 编程STM32有一点帮助。

评论一下?

OωO
取消