3-5-串口单字节命令控制灯光开关

实训项目:串口单字节命令控制灯光开关

编写Arduino程序,在蓝蜻蜓ESP32物联网开发平台上,完成以下的功能:

  1. 初始化UART0
    • 初始化UART0的波特率为115200,并打开串口0。
  2. 循环检测串口接收缓冲区
    • 如果有可读数据,则读出一个字节,进行命令解析:
      • 0xA1:点亮D4灯,输出字符串"D4 is opened!",回车换行。
      • 0xA2:点亮D6灯,输出字符串"D6 is opened!",回车换行。
      • 0xB1:熄灭D4灯,输出字符串"D4 is closed!",回车换行。
      • 0xB2:熄灭D6灯,输出字符串"D6 is closed!",回车换行。
      • 其他非操作命令字节:不操作灯光,输出字符串"ERROR!!!",回车换行。
  3. 编译程序与运行
    • 接上ESP32开发板,编译程序,下载代码并运行。
  4. 使用串口助手工具
    • 发送单字节命令,控制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();
}

posted @ 2024-09-10 22:48  ZHYWJML  阅读(37)  评论(0)    收藏  举报