你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】使用 Arduino IDE 编程你的 STM32,开启你的STM32之旅

[复制链接]
STMCU小助手 发布时间:2022-6-21 17:49
许多电子爱好者和工程师开始接触电子产品时,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 非常相似,如下图所示。

999c4a32e663ee7b655ef59f7ba05544.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引脚。

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

3f325ca7f8756c97ca086f81b5df2ac0.png

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

fdb441868eb942f918c182260877607b.png

为 STM32准备 Arduino IDE

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

第 1 步:安装Arduino IDE。

安装步骤(略)

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

03e2314c063bd05e985c3722c71bcdf7.png

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

64b2695aeb18e0cff47e72e57c8ce387.png

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

1cff46003064cc8924302a8a67f0942e.png

c061ec13a514de7debe0426da99e6e54.png

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

62f5ec597227ccd03dc045f995ec4f48.png

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

e15521e0f7e827200c187811c7b12c14.png

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

b363f072030a3e3c5fa5e990a69a1f53.png

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

上传示例代码到STM32f103c8t6

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

f1e54347f9921996129e2b7088f931f7.png

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

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

  1. digitalWrite(PC13, HIGH); // turn the LED on (HIGH is the voltage level)
  2. delay(1000); // wait for a second
  3. digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
  4. delay(1000); // wait for a second
复制代码

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

a5a4f7f9515f4c6f0141eefcf6083645.png

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

80a243199245aad63aaac5538bd0c8e7.png

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

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

  1. void setup() {
  2.   // initialize digital pin PC13 as an output.
  3.   pinMode(PC13, OUTPUT);
  4. }
  5. // the loop function runs over and over again forever
  6. void loop() {
  7.   digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
  8.   delay(1000);              // wait for a second
  9.   digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
  10.   delay(1000);              // wait for a second
  11. }
复制代码

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



收藏 评论0 发布时间:2022-6-21 17:49

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版