Bluetooth Arduino纳米&x2B;HC-05:AT+;INQ提供损坏的输出

Bluetooth Arduino纳米&x2B;HC-05:AT+;INQ提供损坏的输出,bluetooth,arduino,at-command,Bluetooth,Arduino,At Command,我正在使用Arduino Nano+HC-05蓝牙+ENC28J60以太网模块。使用。我在读取蓝牙模块时遇到一些问题 蓝牙模块设置为AT模式(用夹子按住按钮/将5伏电压插入针脚34。尝试两种方法) 以下是我的配置: ROLE=1 CMODE=1 INQM=1,5,23 下面是循环()及其相关函数 静态uint32\t定时器; 空循环(){ ether.packetLoop(ether.packetReceive()); 如果(毫秒()>=计时器){ if(BTScan()){ sendRequ

我正在使用Arduino Nano+HC-05蓝牙+ENC28J60以太网模块。使用。我在读取蓝牙模块时遇到一些问题

蓝牙模块设置为AT模式(用夹子按住按钮/将5伏电压插入针脚34。尝试两种方法)

以下是我的配置:

ROLE=1
CMODE=1
INQM=1,5,23
下面是
循环()
及其相关函数

静态uint32\t定时器;
空循环(){
ether.packetLoop(ether.packetReceive());
如果(毫秒()>=计时器){
if(BTScan()){
sendRequest();//使用以太卡使用'deviceBT'发送HTTP POST
}
}
}
字符串设备bt=“”;
boolbtscan(){
蓝牙;
if(bluetooth.available()){
deviceBT=“”;
String readstr=bluetooth.readString();
readstr.trim();
如果(readstr==PSTR(“错误:(16)”){
Serial.println(F(“蓝牙未初始化\n蓝牙初始化:”);
bluetooth.println(F(“AT+INIT”);
if(bluetooth.find(F(“OK”))Serial.println(F(“OK”));
}else if(readstr.length()>0){
对于(int i=0;i<2;i++){
数字写入(LED_引脚,高);延迟(100);
数字写入(LED_引脚,低);延迟(200);
}
if(readstr.indexOf(F(“+INQ:”))>-1){
Serial.println(F(“蓝牙发现:”);
Serial.println(readstr);
deviceBT=readstr;
返回true;
}
}
}
Serial.println(F(“蓝牙查询开始”);
bluetooth.println(F(“AT+INQ”);
定时器=毫秒()+5000;
返回false;
}
假设我的蓝牙ID是303A:64:9A65CD 程序通过串行接口对此做出响应

BLUETOOTH INQUIRE START:
BLUETOOTH FOUND:
OK
+INQ:303A:è4:9A<5CD,2010C,7FFC

// sometimes
BLUETOOTH FOUND:
gK
+INQ:303A:6::9A85F¢,2010C,7FFF

// some other time
BLUETOOTH FOUND:
+INQ:303A:64:9C<5FD,20˜0C,7FFF
蓝牙查询启动:
找到蓝牙:
好啊

+INQ:303A:è4:9A我想我找到了一个解决办法,或者也许这就是解决办法

loop()
函数中,我在调用
ether.packetLoop()
之后添加了一点延迟
500ms
,它似乎可以工作

我不确定是否有任何副作用,因为我是这种编程的新手

void循环(){
ether.packetLoop(ether.packetReceive());
延迟(500);//向循环添加500毫秒延迟
如果(毫秒()>=计时器){
if(BTScan()){
sendRequest();//使用以太卡使用'deviceBT'发送HTTP POST
}
}
}
如果我不在,请纠正我