使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅

许多电子爱好者和工程师开始接触电子产品时,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 非常相似,如下图所示。

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第1张图片

它上面的单片机芯片是 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引脚。

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第2张图片

与 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 引脚,如下所示。

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第3张图片

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

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第4张图片

为 STM32准备 Arduino IDE

按照以下步骤安装并准备与 STM 32 开发板一起使用的 Arduino IDE。

第 1 步:安装Arduino IDE。

安装步骤(略)

第 2 步:安装 Arduino IDE 后,打开并下载 STM32 开发板所需的包。这可以通过选择“文件 -> 首选项”来完成。

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第5张图片

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

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

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第6张图片

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

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第7张图片

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第8张图片

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

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第9张图片

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

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第10张图片

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

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

上传示例代码到STM32f103c8t6

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

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第11张图片

在打开的示例代码中,我们必须做一点小小的修改。默认情况下,该程序是为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 second
digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
delay(1000); // wait for a second

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

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第12张图片

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

使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅_第13张图片

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

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

void setup() {
  // initialize digital pin PC13 as an output.
  pinMode(PC13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
  digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

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

你可能感兴趣的:(单片机,stm32,物联网)