语音模块ASRPRO与esp8266串口通信的实现

一、ASRPRO端实现
使用ASPPRO串口0,即PB_5(TX),PB_6(RX),天问Block软件中图形编程如下:在这里插入图片描述
注意:记得加延时,不然容易出现问题。
二、esp8266端实现
2块板子串口的连线:
esp8266的RX与ASRPRO的PB5连接
esp8266的TX与ASRPRO的PB6连接
实现代码如下:

#include <SoftwareSerial.h>

int LED = LED_BUILTIN;  // 定义IO口2即LED_BUILTIN引脚,对应开发板内置LED灯
SoftwareSerial MySerial(3, 1); // RX-PB5, TX-PB6

void setup() {
  MySerial.begin(9600);
  pinMode(LED, OUTPUT);  // 设置LED引脚为输出接口
  digitalWrite(LED, HIGH); // 初始状态下熄灭LED
}
void loop() {
  // 检查是否有来自串口监视器的回应
  if (MySerial.available()) {
    // 读取完整字符串
    String received = MySerial.readString();  // readString() 返回类型为 String
    // 比较接收到的字符串是否为 "ON" 或 "OFF"
    if (received == "ON") {  
      digitalWrite(LED, LOW);   // 点亮LED
      MySerial.print("LEDON");//向串口发送字符
      delay(2000);//延时500ms
      digitalWrite(LED, HIGH);  // 关闭LED
    }
    else if (received == "OFF") {
      digitalWrite(LED, LOW);   // 点亮LED
      MySerial.print("LEDOFF");//向串口发送字符
      delay(2000);
      digitalWrite(LED, HIGH);  // 关闭LED
    } else {
      // 如果收到的不是 "ON" 或 "OFF",输出提示
      ;
    }
  }
  delay(100);  // 每次循环之间短暂延时
}

注意:我板子的LED是给高电平是灭,低电平是亮,因为ESP8266的指示灯连接方式设置为低电平触发。

此代码实现了最基本的串口交互,可以在此基础上进行扩展,如有不对,请大佬们提出指教!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐