最近接收一个项目,需要使用microchip公司出品的蓝牙模块,该模块自带陶瓷天线,蓝牙通信有效距离达到20米,支持串口、I2C驱动。本人主要是研究串口驱动,因为是第一次接触蓝牙,那么首先需要对一些概念进行熟悉。
该蓝牙模块的技术资料可以从网址下载:http://download.csdn.net/detail/camelbrand/8957967,首选需要了解该模块的硬件连接图,根据前面下载的资料手册《BM77_Data_Sheet_v2.0r》该模块的封装图如下图所示
本人只使用蓝牙模块的透传功能,也就是蓝牙上电之后,从蓝牙无线端接收到数据A,蓝牙通过23引脚TXD转发A出去,从22引脚RXD输入的数据B,蓝牙通过无线端发送B出去,本次测试使用的最小系统的硬件连接是引脚1、2、3、33、32、31接GND,引脚4、5、7接VCC3.3。注意如果使用USB转TTL模块给蓝牙模块供电,可能因为模块驱动能力不足导致蓝牙模块无法正常工作,如果想测试蓝牙模块是否上电工作正常,只需要将上述VCC3.3和GND的引脚全部接到直流稳压电源上(驱动电压为3.3V,注意不要使用5V),然后通过蓝牙手机或者笔记本(笔记本需自带蓝牙)搜索蓝牙模块,默认出厂蓝牙名称是Dual-SPP,显示为一个蓝牙耳机连接图标。本人的安卓手机是华为荣耀4X全网通(华为P7和P8可以连接成功),经测试无法搜索到该模块,iphone手机能够搜索到,但是无法连接,本人最后使用的是联想笔记本G40-70M连接成功,而且刚开始无法搜索到该外设,通过驱动精灵将笔记本蓝牙驱动升级为最新版之后才能搜索到Dual-SPP蓝牙模块。
连接成功后,通过蓝牙的打开设置可以查看蓝牙连接状况
通过查看COM端口,如果有下面的端口列表显示,就可以使用串口调试助手通过COM5与蓝牙模块进行数据通信
注意,默认出厂的BM77SPPS3模块的串口波特率为115200,电脑调试软件使用的配置如下,其中hello1是通过BM77模块的22引脚RXD周期输入的字符数据,字符串数据最后通过蓝牙模块发送到笔记本串口调试助手软件当中。实际使用单片机驱动BM77SPPS3模块不需要任何BM77SPPS3的初始化代码,只需要将单片机对应的与蓝牙模块连接好的串口配置好波特率等基本参数就可以通过该蓝牙模块进行数据收发操作,可见该蓝牙模块默认出厂的透传模式操作非常方便。
蓝牙参数配置:
蓝牙烧录配置如果需要修改蓝牙模块的名称,可以通过驱动代码(参考网址,网址2,本人尚未测试验证,有兴趣的朋友可以尝试一下,驱动代码基于STM32平台)修改,也可以通过本文开头提供的资源下载目录http://download.csdn.net/detail/camelbrand/8957967当中的windows配置工具修改,需要注意的是windows软件可以通过串口配置蓝牙模块,注意通过串口修改蓝牙模块参数之前,需要将模块的18引脚P20串接1k或者2K电阻然后接地,先使用"BM77SPP03 UI v301.106.exe"软件配置生成一个txt配置文档XX,然后使用"E2PROM_tool_100913.exe"软件加载txt文档XX,使用串口将配置参数烧录到BM77SPPS3模块当中,如果要继续使用蓝牙模块,需要将18引脚(P20)悬空。
参考网址:
网址1:模块的配套资料手册在如下网址:
http://www.stmcu.org/module/forum/forum.php?mod=viewthread&tid=600292&extra=page%3D&page=1
网址2:串口驱动BM77SPPS参考驱动代码:
http://www.pudn.com/downloads669/sourcecode/embedded/detail2709075.html