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

Resetting the HC-06 Bluetooth module with Arduino Uno?

这是我在 Whosebug 上的第一个 post,希望您能回答我的问题。

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

当您发送命令时,您应该得到如下信息:

来自主机控制器:

AT+BAUD3

回应

OK4800

Secondary Datasheet For Reference

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

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

AT+RESET Reset Device

好吧,我觉得很蠢...

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

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

-F

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

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

首先阅读尤达博士的 post。

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