一、实验准备
实验目标:
安装 Ardunio IDE 和相关软件支持库,在Ardunio 完成STM32板子的串口通信程序,要求:
1)持续向串口输出“Hello world!”
2)当接收到“stop!”时,停止输出。
实验工具:
硬件:
- 野火指南者
软件:
- Ardunio IDE
Arduino安装包
链接:https://pan.baidu.com/s/1mw1w8vqPEu3uu-LFe1xN2A
提取码:nsqt
二、Ardunio下载安装及环境配置
下载安装包后,将相关的配置文件下载下来,进行环境配置
国外大佬的配置文件
解压下好的安装包,双击安装
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLxQzM2QjNxEjM1ATMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
将下载下来的配置文件Arduino_STM32 文件夹拷贝到 Arduino IDE 安装目录下的 hareware 文件夹下
打开arduino,工具→开发板
可以看到STM32F1系列的板子
工具→开发板→开发板管理器,搜索arm,选中 Cortex-M3系列的编译支持文件并安装
完成后打开安装包,双击安装
三、串口与烧录.bin文件
调整指南者的(黄色的)短路帽,连接usb线
短路帽接法:
- RXD — A9
- TXD — A10
- BOOT0 — 3V3
- BOOT1 — GND
其实也就移动了一块,最后不要忘了将其移回去!
打开刚安装的Demonstrator GUI,出现了串口COM3
一直next直至
打开刚下载好的安装包,解压
STM32duino-bootloader-master.zip
然后勾选
打开
STM32duino-bootloader-master\binaries\
选择.bin文件,我这选的是
generic_boot20_pb0.bin
添加完成后点next
烧录完成点close关闭
四、实现串口程序
开发板我选择的是
Generic STM32F103V series
(这个要根据自己的CPU 型号选择)
Variant 选择的是:
STM32F103VE
(还是根据自己的 CPU 型号选择)
Upload method 选择的是:
Serial
CPU Speed(MHz) 选择的是:
72Mhz
Optimize选择的是 :
Smallest(default)
端口选择的是:
COM3
以下是程序代码:
String data = "";
void setup() {
// put your setup code here, to run once:
pinMode(PB0, OUTPUT);
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
while (Serial.available() > 0)
{
data += char(Serial.read());
delay(2);
}
if (data == "stop!\n")
{
digitalWrite(PB0, HIGH);
Serial.println("STM32 has stopped!\n");
data = "";
while(1);
}
digitalWrite(PB0, HIGH); //turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(PB0, LOW); //turn the LED off by making the voltage LOW
delay(1000); // wait for a second
Serial.println("Hello World!");
delay(1000); // wait for a second
}
点击左上角保存文件并编译
然后烧录到板子上
烧录前要按下板子上的复位键 RESET
上传成功后就能看到led灯在闪
五、演示结果
右上角放大镜打开串口监视器,右下角设置波特率为
115200
输入
stop!
后程序停止
灯也不闪了
六、参考
国外的 Arduino IDE 基于 STM32 的串口通讯与 LED 灯闪烁