【ESP32DEVKITV1学习笔记】串口通信
ESP32的串口通信,ESP32字符串发送,ESP32字符串接收 ,USART
·
前言
按键点完灯啦,那就开始串口的使用吧!
一、串口通信
1、简单的串口打印
初始化串口,打印字符串:
#include <Arduino.h>
void setup() {
Serial.begin(9600);
// put your setup code here, to run once:
}
void loop() {
Serial.printf("波特率 9600 \r\n");
delay(1000);
// put your main code here, to run repeatedly:
}
效果图:
2、单个串口数据接收与回传
发送十六进制数据,并回传该十六进制的数据。
#include <Arduino.h>
int receivedData; //接收的数据
void setup() {
Serial.begin(115200);
}
void loop() {
// 判断:接收到数据,进入循环
if (Serial.available() > 0) {
// 回传十六进制数据
receivedData = Serial.read();
Serial.print("received: ");
Serial.println(receivedData,HEX);
}
}
下载程序到ESP32中,打开串口助手,效果如图所示:
(备注:这里是以十六进制收发,所以注意串口助手发送的格式)
3、字符串数据接收与回传
一串字符的接收与回传。
#include <Arduino.h>
String recData; //接收的数据
void setup() {
Serial.begin(115200);
}
void loop() {
// 收到什么发什么数据
if (Serial.available() > 0) {
recData = Serial.readString();
// Serial.print("received: ");
Serial.print(recData);
}
}
通过串口助手发送字符串给ESP32,并成功实现字符串回传:
4、常用的串口函数
列出一些常用的串口函数,有更具体信息需求的朋友可自行查询更详细的信息。
Serial.println(data) //从串行端口输出数据,跟随一个回车(ASCII 13, 或 'r')和一个换行符(ASCII 10, 或 'n')。这个函数所取得的值与 Serial.print()一样。
Serial.println(b) //以十进制形式输出b的ASCII编码值,并同时跟随一个回车和换行符。
Serial.println(b, DEC)// 以十进制形式输出b的ASCII编码值,并同时跟随一个回车和换行符。
Serial.println(b, HEX) //以十六进数据形式输出b的ASCII编码值,并同时跟随一个回车和换行符。
Serial.println(b, OCT)//以八进数据形式输出b的ASCII编码值,并同时跟随一个回车和换行符。
Serial.println(b, BIN)//以二进数据形式输出b的ASCII编码值,并同时跟随一个回车和换行符。
Serial.print(b, BYTE)//以单个字节输出b,并同时跟随一个回车和换行符。
Serial.println(str)//如果 str是一个字符串或数组,输出整个 str的 ASCII编码字符串。
Serial.println()//仅输出一个回车和换行符。
二、总结
没啥好说的,有具体问题评论区问。
三、Q&A
在使用VScode下载的时候,出现下图的错误,导致无法下载:
解决方法:关闭其他正在占用串口的软件或者关闭该软件上的串口。
分析:可能是调试时忘记“关闭串口”,导致串口一直被串口助手占用,令VScode无法使用该串口。
更多推荐
已为社区贡献4条内容
所有评论(0)