参考资料:
【常用模块】HC-05蓝牙串口通信模块使用详解(实例:手机蓝牙控制STM32单片机)
HC-05蓝牙模块使用教程
HC-05蓝牙模块使用记录
补充与理解:
套餐有两个板子
一个是参数架HC—USB—T,其含有一款芯片stm32f103c8t6,官方利用其内存把它设置成一个u盘,用数据线连接后可进入u盘获取软件
另一个是HC-05蓝牙串口模块。
杜邦线连接方式如图
有插座,直接插入即可,注意蓝牙模块是靠外的那排,WiFi模块是插靠里那排
这个HID转串口小助手是专门为这个参数架配套使用的,感觉不太好用,有时发生AT指令没反应
所以我直接用XCOM V2.0这款串口软件
1,USB转TTL模块与蓝牙模块连接
只需要4根杜邦线就行。
其中
USB_TTL 蓝牙模块
tx——————RX,
rx——————TX,
vcc——————3.3V
gnd——————GND
那么模块的EN(key)和STATE(led)是做啥的?
我猜EN(key)引脚就功能相当于模块上的实体小按键,实体小按键按一下就拉高,松开就拉低,如果是软件控制,就控制这个EN(key)引脚,来达到按键按下和松开的效果。
STATE是led显示状态,配对状态输出; 配对成功(已连接)输出高电平,未配对则输出低电平。
正点原子的接线:
汇承官方手册接线:
看上面的资料可知:
PIO11应该就是这个EN(key)引脚,通过电阻接地,网络标号key拉高相当于按键按下(实质也是拉高电平)
PIO9应该就是这个STATE(led)引脚,通过一个电阻连接led
那么按键起什么作用呢?
模块有两种模式:
1,AT指令模式(命令响应工作状态),就是可以通过串口,发生AT指令,
设置蓝牙模块在连接通信模式时的一些参数:比如设置工作时的波特率(AT+UART=115200,0,0)切记,是要输入三个参数,设置蓝牙配对码(AT+PSWD=1234(默认)),设置蓝牙名称(AT+NAME =Beijing)等。
查询蓝牙模块的一些信息:比如查询版本号(AT+VERSION?),查询地址(AT+ADDR?),查询波特率(AT+ UART?),查询蓝牙名称(AT+NAME?)有点奇怪,查询不出名字,但是能设置成功,查询模块工作状态(AT+STATE ?)等。
蓝牙模块的配置(HC05):修改密码、修改模块名字、修改波特率。
2,连接通信模式(蓝牙常规工作状态),也就是蓝牙配对后,正常工作模式。
怎样进入AT指令模式?
进入AT指令模式有两种方法:
什么叫做置高一次PIO11?
在蓝牙模块中有一个小按键,按一下就置高一次PIO11。
所以我采用第2种方法,在连接好USB转TTL模块与蓝牙模块后,按住按键,插入USB,然后再松开按键,这样就进入了AT指令模式,可以直接通过电脑的串口软件设置和查询模块信息了,
怎么样进入连接通信模式?
设置好后,最后发送复位指令AT+RESET指令,模块进入连接通信模式,然后就可以用手机搜索蓝牙了。
不用按按键,连接好USB转TTL模块与蓝牙模块后直接插入电脑或者单片机使用。
依次设置蓝牙模块参数,最后查询一下
依次有:
版本
地址
配对码
波特率,停止位,寄偶校验
Param1:波特率(bits/s)
取值如下(十进制):
2400、4800、9600、19200、38400、
5760、115200、230400、460800、
921600、1382400.
Param2:停止位
0——1 位
1——2 位
Param3:校验位
0——None
1——Odd
2——Even
默认设置:9600,0,0
连接模式:
0——指定蓝牙地址连接模式
1——任意蓝牙地址连接模式
(不受绑定指令设置地址的约束)
模块角色
0——从角色(Slave)默认,被动连接;
1——主角色(Master),查询周围 SPP 蓝牙从设备,并主动发起连接,从而建立主、从蓝牙设备间的透明数
据传输通道。
2——回环角色(Slave-Loop),被动连接,接收远程蓝牙主设备数据并将数据原样返回给远程蓝牙主设备;
最后复位,进入连接通信模式(蓝牙常规工作状态),红色LED由慢闪变成快闪。
此时蓝牙模块的串口以115200的波特率进入蓝牙常规工作状态,此时电脑串口发生的”AT+xxx“不再是AT指令,而是数据。也就是无法再修改蓝牙参数了,如果需要修改模块配对码,波特率,则需要拔出USB转TTL,按住模块按键的同时插入USB转TTL,最后松开按键,才切换进入AT指令模式,此时的波特率是38400,这个是无法修改的,两种进入命令响应工作模式的方式使用的波特率是不一样的,第二种方法进入的AT指令模式就是通过38400的波特率工作的。115200比特率是蓝牙常规工作时的波特率,可以在AT指令模式下修改。
连接好USB转TTL模块与蓝牙模块后直接插入电脑,是进入蓝牙常规工作还是按第一种方式进入了AT指令模式?
答:插入后,蓝牙进入蓝牙常规工作模式,此时模块会与手机配对,配对成功就可以双向通信,如果未配对成功(蓝牙未连接),再按一下模块上的按键,就进入了AT指令模式,可以连续发指令,不需要发一次再按一下。
实验测试1:
1,插入电脑
2,打开串口软件,
刚刚把模块蓝牙常规工作时的波特率设置为115200,0,0,因此把串口软件设置为115200,1停止位,无寄偶校验。
发送AT指令 at+version? 测试一下,发现窗口没有反应,无任何信息,此时打开手机,发现手机已经连接了模块,收到消息如下:
可以猜测,此时是蓝牙常规工作模式,电脑发给模块的是数据,不是AT指令,为了再验证一下,发些其他数据
手机端收到
3,此时我再按下模块小按键(注意,我手机还没有和模块断开连接)
继续发送数据,还是窗口还是没反应,手机却收到了信息,说明啥?说明还是蓝牙常规工作模式,为什么会这样?因为没有仔细品中句话
未配对情况下就是 AT 模式,刚刚我手机没有与模块断开连接,所以不是 AT 模式,按下按键也是无效的,所以,应该断开蓝牙!
实验测试2:
1,关闭手机蓝牙,拔下USB转TTL,确保USB转TTL插入电脑后,不与手机连接,这样才是未配对的情况下
2,插入USB转TTL
3,打开软件,波特设置为蓝牙常规工作时的波特率设置为115200,0,0,因此把串口软件设置为115200,1停止位,无寄偶校验。
1)直接发送AT指令
窗口无反应,因为模块还未与蓝牙连接,所以手机端就不用看了。
2)按下模块小按键,松开,然后再次发送AT指令
窗口有反应了,返回了我要的蓝牙地址,那么继续发送其他指令再测试几下
3)连续发送AT指令
成功反馈信息,上面的回答正确!
注意到:在未配对状态下,进入AT模式后,就是第一次按下了小按键,后面不需要按,直接发送指令,操作起来就像第二种方式进入AT指令模式一样,区别在于此时的波特率是115200,不是38400。
参考文章里,这句话有误!
【常用模块】HC-05蓝牙串口通信模块使用详解(实例:手机蓝牙控制STM32单片机)
我自己也说的比较重复啰嗦,,,有时重复啰嗦是希望能表达清楚,,,
AT+reset和AT+ORGL区别:
AT+reset,配置好参数后,发送该指令,可将AT模式切换为蓝牙常规工作模式,后面发送的就是数据,不再是指令了。