使用Arduino Uno重置HC-06蓝牙模块?

时间:2016-11-11 13:31:45

标签: c bluetooth arduino serial-port arduino-uno

这是我在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

3 个答案:

答案 0 :(得分:0)

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

注意:根据我使用带有arduino硬件序列的HC蓝牙模块的经验,为了获得正确的草图上传,你必须从Arduino拔掉HC-06的电源或tx / rx,否则它会干扰

另外,您可能想要注释掉

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

并取消注释

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

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

来自主机控制器:

  

AT + BAUD3

响应

  

OK4800

Secondary Datasheet For Reference

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

此外,还有一个重置命令:

  

AT + RESET重置设备

答案 1 :(得分:0)

好吧,我觉得自己太笨了......

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

好吧,在此之后我不会忘记它是如何运作的:P。谢谢大家的时间和耐心。

-F

答案 2 :(得分:0)

如果您将波特率设置为超过8(115200),则难以返回到9600或其他可用的波特率,因为计算机大部分都不会处理高频率。

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

首先阅读Yoda医生的帖子。

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