糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > stm32之蓝牙模块HC-05使用

stm32之蓝牙模块HC-05使用

时间:2020-02-25 17:56:03

相关推荐

stm32之蓝牙模块HC-05使用

参考资料:

【常用模块】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模式切换为蓝牙常规工作模式,后面发送的就是数据,不再是指令了。

AT+ORGL,是参数配置恢复成出厂模式,就像手机恢复出厂设置一样。

如果觉得《stm32之蓝牙模块HC-05使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。