3-5-串口单字节命令控制灯光开关
实训项目:串口单字节命令控制灯光开关
编写Arduino程序,在蓝蜻蜓ESP32物联网开发平台上,完成以下的功能:
- 初始化UART0
- 初始化UART0的波特率为115200,并打开串口0。
- 循环检测串口接收缓冲区
- 如果有可读数据,则读出一个字节,进行命令解析:
0xA1:点亮D4灯,输出字符串"D4 is opened!",回车换行。0xA2:点亮D6灯,输出字符串"D6 is opened!",回车换行。0xB1:熄灭D4灯,输出字符串"D4 is closed!",回车换行。0xB2:熄灭D6灯,输出字符串"D6 is closed!",回车换行。- 其他非操作命令字节:不操作灯光,输出字符串"ERROR!!!",回车换行。
- 如果有可读数据,则读出一个字节,进行命令解析:
- 编译程序与运行
- 接上ESP32开发板,编译程序,下载代码并运行。
- 使用串口助手工具
- 发送单字节命令,控制ESP32开发板上的灯光开关。
程序代码
#include <Arduino.h>
#define LED1 48
void Serial_Init() // 串口初始化函数定义
{
Serial.begin(115200);
pinMode(LED1, OUTPUT);
}
void Serial_Process()
{
if (Serial.available() > 0)
{
unsigned char data; // 数据存储函数
data = Serial.read();
if (data == 0xA1)
{
digitalWrite(LED1, HIGH);
}
else if (data == 0xA2)
{
digitalWrite(LED1, LOW);
}
else
{
Serial.print("error!!");
Serial.println();
}
}
}
void setup()
{
Serial_Init(); // 串口初始化函数调用
}
void loop()
{
Serial_Process();
}

浙公网安备 33010602011771号