基于Ardunio IDE的STM32串口通信
Ardunio简介
- Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE),Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。
- Arduino IDE开发的优点是更简单,易用,上手,适合新手使用。缺点是省去了更多代码配置环节,不便于底层理解。但这不影响Arduino IDE开发的强大性,一般情况下开发板实现相同的功能。
- Arduino IDE开发比keil开发使用更少的代码就能实现,这一点有点类似编程界的Python与其他编程语言的对比。但如果想在底层方面了解更多,如亲自操作开发板寄存器的话,建议还是使用keil+库函数开发吧。
一、Ardunio IDE安装
(1)安装包获取
云盘资料链接:Ardunio安装包
提取码: q251
- a.安装包下载后直接解压
- b.双击运行,按照默认方式安装即可
- c.将STM32文件夹移植到刚刚安装的Ardunio的hardware文件下
(2)安装后相关配置
- a.添加开发板
- b.安装即可
- c.如下配置
- d.找到安装包双击运行
- e.选择自己空闲的端口,然后一直点击NEXT
- f.直到如下界面时,停止,然后进入安装包随意选择一个就行,这里主要完成对串口通信的处理,对LED闪烁影响不大
- 至此所有配置全部完成
二、实验例程
(1)实验要求
安装 Ardunio IDE 和相关软件支持库,在Ardunio 完成STM32板子的串口通信程序:
- (1)持续向串口输出“Hello Livechen~~~”
- (2)当接收到“stop!”时,停止输出
- (3)输入“begin”时,又继续输出
(2)实验代码
int flag = 1; //串口发送标志位,1表示正在发送,0表示停止发送
void setup() {
// put your setup code here, to run once:
Serial.begin(115200); //打开串口,波特率为115200
}
void loop() {
// put your main code here, to run repeatedly:
if (flag == 1)
{
Serial.println("Hello Livechen~~~");
delay(1000);
}
usart();
}
void usart()
{
String Stop_flag = "stop\n"; //停止发送信号
String Begin_flag = "begin\n"; //重新发送信号
String data = ""; //储存接受到的数据
while (Serial.available() > 0) //判断串口是否接收到数据
{
data = Serial.readString(); //读取字符到字符串data中
//Serial.print(data);
}
if (data == Stop_flag)
flag = 0; //表明停止发送
if (data == Begin_flag)
flag = 1; //表明恢复发送
}
(3)实验结果展示
三、总结
- 1、在线安装开发板时速度较慢请耐心等待
- 2、注意开发板的TXD是与USB转TTL工具的RXD相连。要将STM32开发板上的
BOOT0用短路冒接入高电平1
,BOOT1用短路冒接入低电平0
。不然会一直提示检测不到设备 - 3、在Arduino下编程相对于KEIL中来说简单了许多,代码量明显减小,希望大家也能灵活的掌握这种方式,闲来无事之时可以把玩。