C语言 用Arduino Uno复位HC-06蓝牙模块



这是我在Stackoverflow上的第一篇文章,所以我希望你能回答我的问题。

我是Arduino的新手,我不小心用下面的代码改变了我的HC-06蓝牙模块的波特率和名称。

#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 4); // RX, TX
void setup()
{
  //Serial.begin(9600);
  //Serial.begin(57600);
  Serial.begin(115200);
  Serial.println("Goodnight moon!");
  mySerial.begin(9600);
  //mySerial.begin(57600);
  //mySerial.begin(115200);    //if you change the baud and want to re-run this sketch, make sure this baud rate matches the new rate.
  delay(1000);
  mySerial.print("AT");
  delay(1000);
  mySerial.print("AT+VERSION");
  delay(1000);
  //mySerial.print("AT+PIN1234"); // Set pin to 1234  was 1342
  //delay(1000);
  //mySerial.print("AT+NAMEJY-MCU-HC06"); // Set the name to JY-MCU-HC06
  //delay(1000);
  //mySerial.print("AT+BAUD4"); // Set baudrate to 9600
  //mySerial.print("AT+BAUD7"); // Set baudrate to 57600
  mySerial.print("AT+BAUD8"); // Set baudrate to 115200
  delay(1000);
}
void loop() // run over and over
{
  if (mySerial.available())
  Serial.write(mySerial.read());
  if (Serial.available())
  mySerial.write(Serial.read());
}

现在我无法恢复到默认设置(波特率9600和名称HC-06),我不知道如何解决这个问题。

我尝试输入串行AT命令,但没有得到响应。我还确定了HC-06模块没有与任何其他设备配对,但仍然没有响应。除了Arduino串行监视器,我还尝试了不同的源和终端,如:

http://www.hobbyist.co.nz/?q=bluetooth-module-device

http://42bots.com/tutorials/hc-06-bluetooth-module-datasheet-and-configuration-with-arduino/

和更多…

所以我的问题如下:我应该如何恢复我对HC-06蓝牙模块所做的更改,最好回到波特率9600?

提前谢谢你。

- f

您可以尝试使用硬件串行而不是软件串行,看看是否有效?

注意:根据我使用HC蓝牙模块与arduino硬件串行的经验,为了获得适当的草图上传,您必须从arduino拔出HC-06的电源或tx/rx,否则会干扰。

还有,你可能想要注释掉

mySerial.print("AT+BAUD8"); // Set baudrate to 115200

和取消注释

//mySerial.print("AT+BAUD4"); // Set baudrate to 9600

当你发送命令时,你应该得到这样的东西:

From Host controller:

在+ BAUD3

反应

OK4800

Secondary Datasheet For Reference

在数据表上有一个复位引脚在11。(图2)

还有一个重置命令:

AT+RESET复位设备

好吧,我觉得自己好笨…

显然我将波特率设置为57600,而不是115200…所以现在我可以通过57600波特率来更改波特率和名称。

好吧,我不会忘记它现在是如何工作的:谢谢大家的时间和耐心。

- f

如果您将波特率设置为超过8(115200),则很难回到9600或其他可用的波特率,因为计算机大多无法处理那么高的频率。

有一个由尤达博士在instructables.com上基于ATMEGA328P-PU(例如arduino UNO)制作的汇编技巧,这可能有助于在如此高的频率下伪造串行连接。基于他的工作,我做了这个页面来生成一个arduino脚本,可以恢复你的AT连接到你的HC-06。

先读尤达博士的帖子。

https://tools.krum.com.ar/save_your_hc-06/

最新更新