HC-05 Arduino AT自动命令INQ

时间:2018-11-13 09:51:31

标签: arduino hc-05

在这里的新手,请阅读有关HC-05的所有问题,但在这种情况下并不能帮助我。我正在Arduino代码中控制HC-05的AT命令,以便可以按我的Master蓝牙/ Arduino端上的按钮,该按钮将请求最近的INQ命令的从设备响应其地址,例如。 + INQ:2016:6:61785。主设备将其读取为字符串,冒号被逗号替换,并与其余命令配对发送给主设备BT模块,以将两个设备配对。 这一切都很好,但是这里的问题是,地址后的确认“确定”直接出现在地址之后,该地址然后在我的字符串中而不是地址中出现,而不是总是出现在大多数情况下,因此在每个时间都是命中注定的不时地。我怎么看不到“ OK”呢?出于某种原因而无法正确解决这个问题。使用Arduino板时,它的工作情况要好一些,好像地址和“ ok”之间有一点延迟,因此字符串首先获取了地址,但是对于我自己的Atmel328p原型,“ ok”有时到达得太快。 这是我用于AT命令的代码。

//*****Setup Routine for Slave device*******

ButtonState = digitalRead(Button); // read AT Setup Mode button 


if (ButtonState == LOW) { 


digitalWrite(SetLED, HIGH);          // Switch Setup LED ON during Setup
digitalWrite(HC_05_SETUPKEY, HIGH);  // Set AT command mode when powering up
delay(500);
digitalWrite(HC_05_PWR1, LOW);       // Power VCC
digitalWrite(HC_06_PWR2, LOW);       // Power VCC

wdt_reset();                  

delay(1000);
digitalWrite(HC_05_PWR1, HIGH); // Power VCC
digitalWrite(HC_06_PWR2, HIGH); // Power VCC


wdt_reset();                   

delay(1000);

wdt_reset();                   

delay(1000);

wdt_reset();                   

BTSerial.println("AT");
delay(500);

wdt_reset();                   

BTSerial.println("AT+RMAAD");  // Delete previously paired device

delay(500);

wdt_reset();                  

BTSerial.println("AT+INIT");   // Initialize Bluetooth Module before Inquiry
delay(1000);

wdt_reset();                   

delay(1000);

wdt_reset();                  

BTSerial.println("AT+INQ");    // Inquire Nearest Receiver
// delay(11)   

// Here is where the "ok" creeps in too quickly sometimes
String BTName = BTSerial.readString(); // Read Inquired Data from Bluetooth 
                                          Module

String a = (BTName.substring(5, 9) + ","); // De construct and add commas to 
                                              String
String b = (BTName.substring(10, 11) + ",");
String c = BTName.substring(12, 17);

delay(1000);

wdt_reset();                 

String g = ("AT+BIND=");
String h = g + a + b + c;     // Construct String command
BTSerial.println(h);          // Bind the two Bluetooth Modules
delay(1000);

wdt_reset();                  

String i = ("AT+LINK=");
String j = i + a + b + c;     // Construct string command
BTSerial.println(j);          // Link the two Bluetooth Modules
delay(1000);

wdt_reset();                  

digitalWrite(HC_05_SETUPKEY, LOW);   // Cycle the Bluetooth Module Power
delay(10);
digitalWrite(HC_05_PWR1, LOW); // Power VCC
digitalWrite(HC_06_PWR2, LOW); // Power VCC

delay(1000);

wdt_reset();               

delay(1000);

wdt_reset();                

digitalWrite(HC_05_PWR1, HIGH); // Power VCC
digitalWrite(HC_06_PWR2, HIGH); // Power VCC

digitalWrite(SetLED, LOW);

// wdt_reset();             

} 

0 个答案:

没有答案