语音模块ASRPRO与esp8266串口收发通信的实现
注意:我板子的LED是给高电平是灭,低电平是亮,因为ESP8266的指示灯连接方式设置为低电平触发。此代码实现了最基本的串口交互,可以在此基础上进行扩展,如有不对,请大佬们提出指教!语音模块ASRPRO与esp8266串口通信的实现。esp8266的RX与ASRPRO的PB5连接。esp8266的TX与ASRPRO的PB6连接。注意:记得加延时,不然容易出现问题。二、esp8266端实现。一、AS
·
语音模块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的指示灯连接方式设置为低电平触发。
此代码实现了最基本的串口交互,可以在此基础上进行扩展,如有不对,请大佬们提出指教!
更多推荐


所有评论(0)