蓝牙模块HC05支持SPP协议,使用PC机自带蓝牙(或者蓝牙适配器)与HC05连接后,可在电脑端虚拟出串口,这样上位机软件就可以像操作串口一样与HC05通信。
1、HC05与系统连接
原使用win10系统时,在打开蓝牙开关后,在设置->蓝牙和其他设备->添加蓝牙设备中搜索蓝牙模块,并配对,之后在设备管理器中会出现虚拟的串口,这个步骤会出现两个串口,需要查看哪个串口属性中含有“Dev B”,那么这个串口就是虚拟的蓝牙串口,至于为何出现两个串口,原因未知。
但是win11系统不知什么原因,无法通过上述步骤找到HC05设备。
经过查找,发现正确的方法为下图所示
其中第7步中,点击浏览,系统会自动查找周围的蓝牙设备,找到HC05后,点击下一步,这样可以直接添加一个"Dev B"的设备串口。
此时还没有输入HC05的配对码,当使用自己的应用软件打开这个蓝牙串口时,系统会弹出输入配对码的提示框,输入即可。
2、软件打开串口
常用串口调试工具是串口调试助手,以sscom5.13为例,打开蓝牙串口时,经常出现如下所示的提示,经过测试发现解决的方式是:sscom5.13不关闭,将HC05重新上电,或者发送AT+RESET\n指令让HC05复位,再点击sscom5.13上的“打开串口”,即可使用。
进一步测试后,发现使用自己编写的软件打开串口时没有出现此问题。
继续测试,设置监控,捕捉COM8的设备操作记录,发现刚打开sscom5.13时,会出现对COM8三步操作,见下图。
此时还是没点击软件上的任何按钮,而自己写的软件没有监控到这三步操作;当出现这三步操作后,即使立即关闭sscom5.13,使用自己写的软件,也不能打开蓝牙串口;估计是这三步操作没有释放蓝牙串口(即使后两步是对COM8的释放操作)。
这样可以理解为什么点击sscom5.13打开串口会出现提示,因为再点击打开按钮前,软件就预打开过串口资源了,可能没有释放这个资源,至于原因未知;此时sscom5.13不关闭,重启蓝牙模块,就可以打开串口,不知道这又是什么原因和逻辑呢?
如果在串口设置->使能启动立即打开串口,监控发现就没有上述三步操作,而蓝牙串口又能顺利打开。
估计是上述三步操作导致的串口资源没有释放引起的。