Ardunio完成stm32串口通信,实现上位机控制开始发送与停止发送

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。
它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。

一、安装 Arduino IDE

1、下载安装Arduino
https://pan.baidu.com/s/19ceOD59_ekpE6I7fIPA-9A
提取码:a8cf
提示安装驱动时,请务必同意

二、配置stm32开发环境

1、下载stm32固件包
在这里插入图片描述
https://pan.baidu.com/s/1duNbOfa-kcMUqeMqluu3Iw
提取码:hph9

2、下载后解压到Arduino安装目录下的hardware文件夹下
在这里插入图片描述
3、打开Arduino IDE然后按工具-开发板管理器,下载安装Arduino SAM开发板
在这里插入图片描述
在这里插入图片描述
4、配置工具中的选项卡(第一项根据自己的硬件型号选择,第三项为程序下载方式,本文中选用串口方式)
在这里插入图片描述

5、选择示例,进行编译,检查环境是否搭好
在这里插入图片描述
6、编译通过,则已搭好stm32编译环境
在这里插入图片描述

三、stm32串口通信

本例所用硬件为野火的指南者开发板
实验内容为,串口循环发送Hello Word当收到stop停止发送,收到begin重新开始发送

1、连接硬件,选择端口
在这里插入图片描述
在这里插入图片描述
2、选择串口的例程进行更改
在这里插入图片描述
3、代码

String rString = "";        // 接收到达字符串
int flag=1;                  //发送或接收标志
String Stop_flag = "stop"; //停止发送
String Begin_flag = "begin"; //重新发送

void setup() 
{
	Serial.begin(115200); // 串口初始化
}

void loop() 
{
    while(Serial1.available() > 0)    //接收缓存区有数据
    {
        rString = Serial1.readString();  //将接收数据存到接收字符串里    
    }
    if (rString == Stop_flag)
    {
       flag = 0; //表明停止发送
    }
    if (rString == Begin_flag)
       flag = 1; //表明恢复发送
    if (flag == 1)
    {
        Serial.println("Hello World");
        delay(1000);
    }
    
}

4、编译上传程序
在这里插入图片描述
如果报错
在这里插入图片描述
先按复位键然后再重新上传,如果之前的程序有串口通信,打开工具里的串口检测器,然后按复位键,再重新上传

5、实验效果
打开工具里的串口监测器
注意波特率和结束符的选择
在这里插入图片描述

Arduino ESP32 中,可以使用软串口(SoftwareSerial)库来实现串口通信。软串口是通过软件模拟的串口,可以通过任意两个 GPIO 引脚来实现串口通信。 下面是一个示例代码,演示了如何使用软串口在 ESP32 上进行串口通信: ```c++ #include <SoftwareSerial.h> // 设置软串口的引脚 SoftwareSerial mySerial(2, 3); // RX, TX void setup() { Serial.begin(9600); // 打开硬串口,用于调试输出 mySerial.begin(9600); // 打开软串口 } void loop() { if (mySerial.available()) { // 如果软串口有数据可读 char c = mySerial.read(); // 读取一个字符 Serial.print(c); // 在硬串口上输出字符 } if (Serial.available()) { // 如果硬串口有数据可读 char c = Serial.read(); // 读取一个字符 mySerial.write(c); // 在软串口上发送字符 } } ``` 在上面的代码中,我们使用了引脚 2 和 3 作为软串口的 RX 和 TX 引脚,分别连接到另一个串口设备。在 `setup()` 函数中,我们打开了硬串口和软串口,分别用于调试输出和串口通信。 在 `loop()` 函数中,我们使用了 `mySerial.available()` 和 `Serial.available()` 函数来检查软串口和硬串口是否有数据可读。如果有数据可读,我们就使用 `mySerial.read()` 和 `Serial.read()` 函数来读取数据,并通过 `mySerial.write()` 和 `Serial.print()` 函数来发送和输出数据。 需要注意的是,在使用软串口时,需要确保 RX 和 TX 引脚不会被其他设备占用。此外,软串口的波特率需要与另一个串口设备的波特率相同,否则数据可能无法正确传输。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值