前言:
推一下之前的教程文章(添加日期2021/8/11)
51单片机之路__基础部分完结(学习笔记)
STM32白话文教程(一)固件库点灯
STM32白话文教程(三)内置按键模块、外接按键检测 三句话让你玩明白按键 水银倾斜模块
PCL三维重建教程_点云基础篇(认识、读取加载显示、输出保存点云、附赠点云类型转换) C++
经过几天几夜的努力,不断的查文章,问客服,找站内前辈,我终于把蓝牙模块搞好了!
之所以不把这一项放入笔记中,是因为我觉得它应该可以给大家提供帮助,而且它让我走了很多弯路,应该单独成为一篇独立文章!
提前说明一下,
我的板子是普中科技A3,
蓝牙模块型号BT-05。
一开始很无知,以为这个模块也需要usb转TTL,跟客服磨了2天的嘴皮子,有意思的是客服告诉我这个是HC-06模块,然后又给我转到别家的技术,最后又给我个QQ咨询。QQ的那位说我这里BT-05,别提我内心多么爆炸了,其实后来看文章,有的文章的确说了怎么接,但是特别重要的却一笔带过,其实让我犯错的原因是,我被另一篇文章误导了!文章吧,你真的不能全信,可我看其他的文章,还不如这个写得好,就一直误以为他是对的!一直把它接到p30和p31(很多接口的地方)好吧,最后那个技术起码告诉了我配置的时候怎么接了,不过也只帮了我这个忙。
废话不再多说了,
第一步:配置蓝牙(AT模式)。
配置蓝牙的过程中,我们可以修改,蓝牙名称、PIN码(相当于连接蓝牙的密码)等。
配置蓝牙时,接线如下:
BT-05蓝牙模块 | 单片机 |
---|---|
RXD | UTX |
TXD | URX |
GND | GND |
VCC | 5V/3V |
我接的5V 随便吧 反正炸不了 |
接线确保正确,如图。
拔掉跳线帽,接把蓝牙的RXD、TXD分别接UTX、RTX位置。
接好地(GND)和电源5V。注意这里不要看后面的线。按上图圈的位置接就好。
如图接好后,我们打开串口调试软件。
我用的普中给的软件,这里波特率调成9600。其他波特率或会乱码。
输入:AT回车
发送后,接收区显示OK。接下来就可以用AT指令,对蓝牙进行配置操作了。
功能 | 指令 |
---|---|
更改蓝牙名称 | AT+NAME这里是名字 |
更改PIN码 | AT+PIN这里是PIN码 |
更改主从状态 | AT+ROLE0 |
其他指令 | AT+HELP (请自行了解更多) |
注意,
AT+NAME后面没有等于号,
即不是AT+NAME=404detective
而且PIN码只能为6位!
设置为从机状态。
AT+ROLE0
这里可能遇到的问题!
如果你遇到以下问题:发送AT回车,显示OK。也可以改蓝牙名称,但其他的指令几乎都不可以!(至少我没有找到其他可以用的命令)
这里我绕了很大的弯路,最终在站内找前辈一问,终于解决了! 让我试试RESET,结果就好了!
也就是输入AT+RESET并发送。
第二步:连接蓝牙。
我用的是普中给的APP。
电脑上显示如下。可见test字符发送成功。也就是说蓝牙模块可以正常接收到这个数据了。
第三步:使发送信号(字符)传入单片机。
这时候去接RXD(P3.0)、TXD(P3.1)
接线对应如下:
BT-05蓝牙模块 | 单片机 |
---|---|
RXD | RXD(P3.0) |
TXD | TXD(P3.1) |
GND | GND |
VCC | 5V/3V |
这时,字符已经可以发送到单片机。接下来要做的,就是编程,接收这个字符,并实现各种功能。
这里可能遇到的问题!
我自己下载的蓝牙串口APP,连接不了,手机设置里的蓝牙也连接不了。其实在用那个APP的时候,就是让手机内的蓝牙去连接它。
然后我用了普中给的APP,它一开始要读取本地文件的权限,我嫌给一些权限,就没用。最后穷途末路到崩溃,还是用了。结果发现,这个东西居然不用PIN码就可以连接?
进来一看,看不太懂啊!有很多上传的。于是,我就一个一个试,不断发送,用前几个发送还是用调用手机去连接它,最后,用下面的UNKNOW,这次没有显示要连接,发生了什么事?
我抱有期望的看向电脑屏幕,我靠出来了ON。(当时单片机里有一个程序,输入ON即可点亮第一个LED灯,所以发送的ON)。配置好之后要换接线,我赶紧换好,当我发送ON点了第一个LED时,我直接卧槽?(张嘴不出声那种)
虽然我成功了,但我仍然很疑惑,为什么不要PIN密码?还是说我之前连接了保存了?还是有一堆疑惑尚未解决。