ESP32学习记录<三>串口通信
前言
前面已经学习了如何操作io口点亮led灯,这次学习串口通信的原理。学习过51、32应该对串口通信都挺熟悉的,所以会操作基于arduino框架的库函数’实现串口通信就达到目的了。本文就介绍了esp32串口通信的基础内容。
一、通过串口打印出数据
1.初始化串口
首先在setup函数里对串口初始化,使用的函数如下:Serial.begin(115200);
该语句的意思就是把串口波特率设置为115200。
2.打印数据
这里使用到的函数是Serial.println(),普通用的是Serial.print(),它们的区别就是前者是换行输出,后者不换行。
int x;
Serial.println(x,BIN);
delay(1000);
Serial.println(x,OCT);
delay(1000);
Serial.println(x,DEC);
delay(1000);
Serial.println(x,HEX);
delay(1000);
该例子就是将x变量的二进制,八进制,十进制以及十六进制都打印出来。同理,字符和字符串都可以通过该语句输出,这里就不举例了。
二、串口控制LED亮灭
1.接收串口发送的数据
可以给串口发送数据,实现对esp32io口的控制。本次以控制LED灯的亮灭为例子。
Serial.available()
该函数可判断串口是否有接收到外界发送过来的数据,它返回的是bool值,即布尔值,就1和0两种逻辑判断,返回的值为1就是有数据传入。
Serial.read()
read的中文意思我们都知道是读的意思,在这里这个函数的意思是读取串口接收的数据并存到指定的地址里。
2.实现功能
具体代码如下(示例):
const int led=2;
char x=0;
void setup() {
pinMode(led,OUTPUT);
Serial.begin(115200);
}
void loop() {
while(Serial.available()>0)
{
x=Serial.read();
if(x=='A')
{
digitalWrite(led,LOW);
}
else if(x=='B')
{
digitalWrite(led,HIGH);
}
}
}
当接送到字符‘A’时,LED为灭的状态;当接收到字符‘B’时,LED为亮的状态
总结
以上就是今天要讲的内容,本文简单介绍了esp32串口的使用,写得有点急,可能有点疏忽的地方,还请各位大佬指正。