ZBLOG

#include #define BLUEOPEN "AT+BLUFISEND=1\r\n" SoftwareSerial BTSerial(10, 11); // RX, TX 引脚 void setup() { Serial.begin(9600); BTSerial.begin(115200); } void loop() { } bool AT_CMD(char * data,char * keyword)...

在您的代码中,有一些需要修改和完善的地方,以确保蓝牙模块的AT命令能够成功发送和接收应答。以下是修正后的完整代码示例,包括AT_CMD函数和connect_blue函数的实现:

#include <SoftwareSerial.h>

#define BLUEOPEN "AT+BLUFISEND=1\r\n"

SoftwareSerial BTSerial(10, 11); // RX, TX 引脚

void setup() 
{
    Serial.begin(9600);
    BTSerial.begin(115200); // 确保波特率与蓝牙模块匹配
    connect_blue(); // 调用连接蓝牙函数
}

void loop() {
    // 在这里可以添加其他功能,比如数据处理
}

bool AT_CMD(const char *data, const char *keyword) {
    while (Serial.available()) Serial.read(); // 清空串口缓冲区

    Serial.println(data);  // 发送AT指令到蓝牙模块
    
    unsigned long start = millis();
    
    // 等待应答,最多等待5秒(5000毫秒)
    while (millis() - start < 5000) {
        if (BTSerial.available()) { // 检查蓝牙串口是否有数据可读
            String response = "";
            while (BTSerial.available()) {
                char inchar = BTSerial.read(); // 从蓝牙串口读取字符
                response += inchar; // 拼接成字符串
            }
            Serial.print("Response: "); 
            Serial.println(response); 

            if (response.indexOf(keyword) != -1) { // 检查是否包含关键字
                return true; // 成功收到预期响应
            }
        }
        delay(100); // 添加延迟以避免过于频繁地查询串口
    }

    return false; // 超时没有得到预期响应
}

void connect_blue() {
    if (AT_CMD(BLUEOPEN, "OK")) { // 如果返回值为true,表示成功连接
        Serial.println("Connect UDP success");
    } else {
        Serial.println("Connect UDP failed");
    }
}

修改和补充说明:

  1. AT_CMD 函数

    • 传入参数 const char* dataconst char* keyword 用于避免潜在的问题。
    • 使用 String response 来存储来自蓝牙模块的完整响应。
    • 增加超时时间检查,最多等待5秒钟来接收回应。
  2. connect_blue 函数

    • 在调用 AT_CMD 时直接检查返回值,如果成功则打印相应信息。
  3. 波特率设置:确保您的Bluetooth设备支持115200波特率,并与之匹配。

  4. 错误处理:如果失败,可以根据需要扩展更多错误信息或重试逻辑。

使用这个代码,您应该能够更好地与您的蓝牙模块通信,并且能准确地检测到模块的响应。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19392

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?