STM32-标志

STM32F103C8T6最小系统开发板

STM32F103C8T6-最小系统-开发板-产品

产品信息

STM32F103C8T6 ARM STM32最小系统开发板模块是一款基于STM32F103C8T6微控制器的开发板。 它设计为使用 Arduino IDE 进行编程,并与各种 Arduino 克隆、变体以及第三方板(例如 ESP32 和 ESP8266)兼容。

该板也称为 Blue Pill Board,其运行频率大约是 Arduino UNO 的 4.5 倍。 它可用于各种项目,并可连接 TFT 显示器等外围设备。

使用该板构建项目所需的组件包括 STM32 板、FTDI 编程器、彩色 TFT 显示屏、按钮、小面包板、电线、移动电源(独立模式可选)和 USB 转串行转换器。

原理图

要将 STM32F1 板连接到基于 ST1.8 的 7735 彩色 TFT 显示屏和按钮,请按照提供的原理图中描述的引脚对引脚连接进行操作。

为 STM32 设置 Arduino IDE

  1. 打开 Arduino IDE。
  2. 转到工具 -> 板 -> 板管理器。
  3. 在带有搜索栏的对话框中,搜索“STM32F1”并安装相应的软件包。
  4. 等待安装过程完成。
  5. 安装后,STM32 板现在应该可以在 Arduino IDE 板列表下进行选择。

使用 Arduino IDE 对 STM32 板进行编程

自推出以来,Arduino IDE 就表现出了支持各种平台的愿望,从 Arduino 克隆版和不同制造商的变体到 ESP32 和 ESp8266 等第三方板。 随着越来越多的人熟悉 IDE,他们开始支持更多不基于 ATMEL 芯片的板,在今天的教程中,我们将介绍其中一款此类板。 我们将研究如何使用 Arduino IDE 对基于 STM32 的 STM32F103C8T6 开发板进行编程。

STM32F103C8T6-Minimum-System-Development-Board-fig-1

本教程使用的 STM32 板正是基于 STM32F103C8T6 芯片的 STM32F1 开发板,通常被称为“蓝色药丸”,与其 PCB 的蓝色一致。 Blue Pill 采用强大的 32 位 STM32F103C8T6 ARM 处理器,主频为 72MHz。 该板在 3.3v 逻辑电平下运行,但其 GPIO 引脚经过测试可耐受 5v 电压。 虽然它不像 ESP32 和 Arduino 变体那样配备 WiFi 或蓝牙,但它提供 20KB RAM 和 64KB 闪存,足以满足大型项目的需求。 它还拥有 37 个 GPIO 引脚,其中 10 个可用于模拟传感器,因为它们支持 ADC,其他引脚则支持 SPI、I2C、CAN、UART 和 DMA。 对于售价 3 美元左右的主板,您会同意我的观点,这些规格令人印象深刻。 下图显示了这些规范与 Arduino Uno 规范的汇总版本。

STM32F103C8T6-Minimum-System-Development-Board-fig-2

根据上述规格,Blue Pill 的运行频率大约是 Arduino UNO 的 4.5 倍,在今天的教程中,作为前amp在有关如何使用 STM32F1 板的文件中,我们将其连接到 1.44 英寸 TFT 显示器并对其进行编程以计算“Pi”常数。 我们将记录开发板获取该值所需的时间,并将其与 Arduino Uno 执行相同任务所需的时间进行比较。

必需组件

构建该项目需要以下组件;

  • STM32板
  • FTDI程序员
  • 彩色TFT
  • 按钮
  • 小面包板
  • 电线
  • 充电宝
  • USB 转串口转换器

与往常一样,本教程使用的所有组件都可以从随附的链接购买。 然而,仅当您想以独立模式部署项目时才需要移动电源。

原理图

  • 如前所述,我们将使用按钮将 STM32F1 板连接到基于 ST1.8 的 7735 英寸彩色 TFT 显示屏。
  • 按钮将用于指示板开始计算。
  • 如下图所示连接组件。

STM32F103C8T6-Minimum-System-Development-Board-fig-3

为了使连接易于复制,下面描述了 STM32 和显示器之间的引脚对引脚连接。

STM32 – ST7735

STM32F103C8T6-Minimum-System-Development-Board-fig-4

再次检查连接,确保一切都正常,因为这往往会变得有点棘手。 完成此操作后,我们继续设置 STM32 板以使用 Arduino IDE 进行编程。

为 STM32 设置 Arduino IDE

  • 与大多数非 Arduino 制造的板一样,在板可以与 Arduino IDE 一起使用之前需要完成一些设置。
  • 这涉及到安装板 file 通过 Arduino Board Manager 或从互联网下载并复制 file进入硬件文件夹。
  • 板管理器路线是不太繁琐的路线,并且由于 STM32F1 是列出的板之一,因此我们将采用该路线。 首先将 STM32 板的链接添加到 Arduino 首选项列表中。
  • 转至 File -> 首选项,然后输入此内容 URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) 在如下所示的框中,然后单击“确定”。

STM32F103C8T6-Minimum-System-Development-Board-fig-5

  • 现在转到工具->董事会->董事会管理器,它将打开一个带有搜索栏的对话框。 搜索 STM32F1并安装相应的包。

STM32F103C8T6-Minimum-System-Development-Board-fig-6

  • 安装过程将需要几秒钟。 之后,该板现在应该可以在 Arduino IDE 板列表下进行选择。

代码

  • 代码的编写方式与我们为 Arduino 项目编写任何其他草图的方式相同,唯一的区别是引脚的引用方式。
  • 为了能够轻松地开发该项目的代码,我们将使用两个库,它们都是标准 Arduino 库的修改,以使它们与 STM32 兼容。
  • 我们将使用 Adafruit GFX 和 Adafruit ST7735 库的修改版本。
  • 这两个库都可以通过附加的链接下载。 像往常一样,我将对代码进行简短的分解。
  • 我们通过导入我们将使用的两个库来开始代码。

STM32F103C8T6-Minimum-System-Development-Board-fig-7

  • 接下来,我们定义 STM32 的引脚,LCD 的 CS、RST 和 DC 引脚所连接的引脚。

STM32F103C8T6-Minimum-System-Development-Board-fig-8

  • 接下来,我们创建一些颜色定义,以便稍后在代码中通过名称而不是十六进制值轻松使用颜色。

STM32F103C8T6-Minimum-System-Development-Board-fig-9

  • 接下来,我们设置希望板经历的迭代次数以及要使用的进度条的刷新持续时间。

STM32F103C8T6-Minimum-System-Development-Board-fig-10

  • 完成此操作后,我们创建了 ST7735 库的一个对象,该对象将用于在整个项目中引用显示屏。
  • 我们还指出了按钮所连接的 STM32 引脚,并创建一个变量来保存其状态。

STM32F103C8T6-Minimum-System-Development-Board-fig-11

  • 完成此操作后,我们转到 void setup() 函数。
  • 我们首先设置按钮所连接的引脚的 pinMode(),激活引脚上的内部上拉电阻,因为按钮在按下时会接地。

STM32F103C8T6-Minimum-System-Development-Board-fig-12

  • 接下来,我们初始化串行通信和屏幕,将显示屏背景设置为黑色,并调用 print() 函数显示界面。

STM32F103C8T6-Minimum-System-Development-Board-fig-13

  • 接下来是 void Loop() 函数。 由于使用了库/函数,void 循环函数非常简单且简短。
  • 我们首先读取按钮的状态。 如果按钮被按下,我们使用removePressKeyText()删除屏幕上的当前消息,并使用drawBar()函数绘制变化的进度条。
  • 然后我们调用开始计算函数来获取并显示 Pi 的值以及计算它所花费的时间。

STM32F103C8T6-Minimum-System-Development-Board-fig-14

  • 如果未按下按钮,设备将保持空闲模式,屏幕要求按下按键才能与之交互。

STM32F103C8T6-Minimum-System-Development-Board-fig-15

  • 最后,在循环末尾插入延迟,以便在绘制“循环”之前留出一点时间。

STM32F103C8T6-Minimum-System-Development-Board-fig-16

  • 代码的其余部分是调用的函数,以实现从绘制条形图到计算 Pi 的任务。
  • 大多数这些功能已在涉及 ST7735 显示屏使用的其他几个教程中介绍。

STM32F103C8T6-Minimum-System-Development-Board-fig-17STM32F103C8T6-Minimum-System-Development-Board-fig-18STM32F103C8T6-Minimum-System-Development-Board-fig-19STM32F103C8T6-Minimum-System-Development-Board-fig-20STM32F103C8T6-Minimum-System-Development-Board-fig-21STM32F103C8T6-Minimum-System-Development-Board-fig-22

  • 该项目的完整代码如下所示,并附在下载部分下。

STM32F103C8T6-Minimum-System-Development-Board-fig-23STM32F103C8T6-Minimum-System-Development-Board-fig-24 STM32F103C8T6-Minimum-System-Development-Board-fig-25 STM32F103C8T6-Minimum-System-Development-Board-fig-26 STM32F103C8T6-Minimum-System-Development-Board-fig-27 STM32F103C8T6-Minimum-System-Development-Board-fig-28 STM32F103C8T6-Minimum-System-Development-Board-fig-29 STM32F103C8T6-Minimum-System-Development-Board-fig-30 STM32F103C8T6-Minimum-System-Development-Board-fig-31 STM32F103C8T6-Minimum-System-Development-Board-fig-32 STM32F103C8T6-Minimum-System-Development-Board-fig-33 STM32F103C8T6-Minimum-System-Development-Board-fig-34

将代码上传到STM32

  • 与标准 Arduino 兼容板相比,将草图上传到 STM32f1 有点复杂。 要将代码上传到开发板,我们需要一个基于 FTDI 的 USB 转串口转换器。
  • 将 USB 转串口转换器连接到 STM32,如下图所示。

STM32F103C8T6-Minimum-System-Development-Board-fig-35

这是连接的引脚到引脚图

FTDI – STM32

  • 完成此操作后,我们将开发板状态跳线的位置更改为位置一(如下图所示),将开发板置于编程模式。
  • 此后按一次板上的重置按钮,我们就可以上传代码了。

STM32F103C8T6-Minimum-System-Development-Board-fig-37

  • 在计算机上,确保选择“Generic STM32F103C board”并选择串行作为上传方法,然后您可以点击上传按钮。

STM32F103C8T6-Minimum-System-Development-Board-fig-38

  • 上传完成后,将状态跳线更改为位置 “噢” 这将使开发板处于“运行”模式,现在它应该根据上传的代码开始运行。
  • 此时,您可以断开 FTDI 并通过 USB 为开发板供电。 如果代码在通电后不运行,请确保您已正确恢复跳线并对电路板重新通电。

演示

  • 代码完成后,请按照上述上传过程将代码上传到您的设置。
  • 您应该看到如下图所示的显示。

STM32F103C8T6-Minimum-System-Development-Board-fig-39

  • 按下按钮开始计算。 您应该看到进度条逐渐滑动直至结束。
  • 在该过程结束时,将显示 Pi 的值以及计算所花费的时间。

STM32F103C8T6-Minimum-System-Development-Board-fig-40

  • 相同的代码在 Arduino Uno 上实现。 结果如下图所示。

STM32F103C8T6-Minimum-System-Development-Board-fig-41

  • 比较这两个值,我们发现“Blue Pill”比 Arduino Uno 快 7 倍以上。
  • 这使其成为涉及繁重处理和时间限制的项目的理想选择。
  • 蓝色药丸的小尺寸也是一个优点tage 在这里,因为它只比 Arduino Nano 大一点,并且可以在 Nano 速度不够快的地方使用。

文件/资源

STM32 STM32F103C8T6最小系统开发板 [pdf] 用户手册
STM32F103C8T6最小系统开发板,STM32F103C8T6,最小系统开发板,系统开发板,开发板,板

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *