HC-05在扫描其他设备时出现问题

时间:2018-10-25 07:11:39

标签: hc-05

我试图使用HC-05模块作为中心节点来扫描附近的蓝牙设备。但是我遇到以下命令问题:                    AT+INQ给出响应ERROR:(1F)和                    AT+INIT给出响应错误:(17) 但是后来我发现ERROR:(17)是由于SPP重复初始化而引起的,我认为这不是一个严重的问题。但是我不知道什么是错误:(1F)。

我正在执行以下步骤:     AT+INIT     AT+IAC=9E8B33     AT+INIT     AT+IAC=9E8B33     AT+CLASS=0     AT+INQM=1,9,48     AT+INQ
AT+INITAT+INQ以外的所有命令都可以正常工作。 我引用的文档为https://cdn.instructables.com/ORIG/FKY/Z0UT/HX7OYY7I/FKYZ0UTHX7OYY7I.pdf,此处也未提及错误代码1F。我尝试了其他网站,但没有任何解决方案。

我还尝试了在模块上按住小按钮(没有KEY引脚),然后传递AT + INQ,这也给出了相同的错误响应。所有其他AT命令都可以正常工作,并且在主模式和从模式之间切换没有问题。

固件版本:3.0-20170601

如果有人遇到相同的问题,或者找到任何解决方案,请帮助我。

1 个答案:

答案 0 :(得分:0)

我有一个带有3.0-20170601的HC-05,昨晚我设法将其绑定到一个奴隶。事实证明,v3具有两种AT模式。

第一个是在连接电源时按住按钮。指示灯将缓慢闪烁,您可以以38400的波特率连接。但这就像配置模式,其中AT + INQ不可用。

在这种模式下,我执行了以下命令:

AT
AT+UART
AT+RMAAD
AT+ROLE=1

(按住按钮)

AT+RESET

(在设备重新启动并且指示灯缓慢闪烁后释放按钮)

AT+CMODE=1
AT+INQM=0,5,5
AT+PSWD="9999"

AT应该给出OK作为答案,以了解连接是否正常

AT + UART将显示配置的波特率。默认值为9600。

AT + RMAAD清除所有保存的连接

AT + ROLE = 1将其设置为主控

AT + RESET重新启动设备以更改为主设备

AT + CMODE = 1接受各种设备

AT + INQM = 0,5,5在标准模式下查询,最大连接数为5或5秒

AT + PSWD =“ 9999”设置密码9999,更改为所需的密码

此后,是时候更新arudino代码了。根据您的情况,您应该从

更新第4行
const long baudRate = 38400;

const long baudRate = 9600;

...或者您可能已将波特率设置为什么值。然后刷新您的arduino。

现在进入非常令人讨厌的第二个AT命令模式。

不按住按钮即可上电。您将获得快速闪烁速度。开机时,按住按钮。 LED将继续快速闪烁,但是在按下按钮时,您现在可以按配置的波特率连接到设备。因此,打开串行监视器并键入AT进行验证。请记住,只有在按下按钮时该模式才有效。因此,请保持按下状态。我在上面放了一个小夹子。

然后我输入了以下命令:

AT+STATE

AT + STATE将显示当前状态,应查询

然后打开从属设备的电源,并且地址应开始弹出。它将类似于xyz:xy:xyzw,931F00,7FFF

第一部分是您想要的地址(xyz:xy:xyzw)

将更改为,并获取xyz,xy,xyzw

检查是否连接到正确的设备

AT+RNAME?xyz,xy,xyzw

然后绑定

AT+PAIR=xyz,xy,xyzw,5
AT+BIND=xyz,xy,xyzw
AT+LINK=xyz,xy,xyzw

AT + LINK命令给我FAIL作为输出。但这没关系。我重新启动,之前或之后没有按任何按钮。只是正常的开始。

5-10秒后,串行数据显示在我的串行监视器中。

模块已绑定。并且会在开机时自动连接。如果没有,您可能输入了错误的密码。确保将上面的9999更改为0000或1234或任何其他可能的值。当我使用了错误的引脚时,我仍然可以从AT + PAIR和AT + BIND命令中得到确认...直到我输入正确的引脚,它对我来说都是无效的。

很抱歉发布了很长的帖子,但是由于互联网上目前非常缺乏关于HC-05 v3的信息,我想透彻一点。

可以在以下位置找到对所有命令的参考:http://www.electronicaestudio.com/docs/istd016A.pdf(链接有效至2018-08-13)