- 根据模块的不同,原理可能有些差别,要根据自己的原理图进行分析,我的是如下的原理图,带按键的。
- 在上电的时候同时将按键按下,将进入AT模式,这是的波特率默认为38400(这里和我们AT指令设置的波特率不相关).可以通过串口发送AT指令,进行相关操作。
- 如果在上电时未按下按键,将进入自动模式,这时如果模块设置的是从机的话,就可以通过手机蓝牙进行连接,也可以通过手机蓝牙调试助手进行连接进行调试。
- 在自动模式的情况下,如果按下按键,将进入AT模式,但是这时候的串口波特率是我们设置的波特率(默认为9600),松开按键,将进入自由模式。
- 在运行时按下按键将进入AT模式,但是送开按键时本应该回到自动模式的,但是却还可以发送某些指令(如:AT、AT+ROLE?)但是发送AT+NAME?时将不会返回任何东西。所以我们在准备发送AT指令时,最好保持按键是按下的,这样所有指令将可以运行。
- 如果连接中的蓝牙模块按下按键,也将进入AT指令模式,可以通过模块的串口执行命令,在松开按键的时候,会马上回到自动状态,也就是在按下按键的时候,发送的指令将会运行,而松开时,发送的指令将会做为字符串发送给蓝牙主极。
- 模块S1的按键设置特别不友好,我们在写驱动时,不能通过引脚控制模块的状态,这样将会在要发送AT指令的时候,我们必须自己来按下按键,这是非常不友好的,而且很难通过代码控制模块的行为。最好将PIO10引脚接上下拉电阻,然后使用MCU的一个引脚控制。
- HC-05 嵌入式蓝牙串口通讯模块(以下简称模块)具有两种工作模式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有AT命令,用户可向模块发送各种 AT 指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PIO11)输入电平,可以实现模块工作状态的动态转换。
- 串口模块用到的引脚定义:
- PIO8 连接LED,指示模块工作状态,模块上电后闪烁,不同的状态闪烁间隔不同。
- PIO9 连接LED,指示模块连接成功,蓝牙串口匹配连接成功后,LED 长亮。 (在这个模块中,直接连接在STATE引脚上,我们可以在外面接上一个小灯,STATE在有连接的时候为高电平,没连接的时候为低电平)
- PIO11 模块状态切换脚,高电平-->AT 命令响应工作状态,低电平或悬空-->蓝牙常规工作状态。
- 模块上已带有复位电路,重新上电即完成复位。
- EN引脚是使能引脚,EN为低电平时候,电源芯片将断开供电,EN为高电平的时候,电源芯片将会接通,所以在我们使用模块时,应保证模式是通电的,也就是说EN是为高电平的.如果我们将这个引脚悬空,可能会引起模块的不稳定(就是接触不良).
AT+ ROLE?0 被动连接