MAX32630FTHR板的学习(六):心率和血氧数据的蓝牙传输
[复制链接]
MAX32630FTHR板的学习(六):心率和血氧数据的蓝牙传输 上一篇中完成了心率和血氧数据在SD卡中的储存,这篇继续推进,谈一下将数据通过蓝牙无线传输到移动终端的方法。 一、放弃使用板上蓝牙模块 MAX32630FTHR板上本身自带了一个蓝牙模块PAN1326B,该模块是松下推出的基于TI公司CC2564B的蓝牙模块,支持蓝牙BR/EDR/LE,是一个双模模块。该模块通过4线UART接口与MAX32630的UART0连接 ,从硬件上来看已经没有问题了。但是软件上确是一个大坑!因为该模块本身不带蓝牙协议栈,需要主机通过HCI(Host controller interface)接口来对模块进行操作,这就意味着要对HCI指令和蓝牙协议有一定了解才能运用自如。如果是没有经验的新手(比如我),那真的在短时间内从零开始是无法搞定的。此外,TI官网上只提供了对自家MCU移植好的协议栈,唯一的一个第三方就是STM32F4了,但是想顺利移植到MAX32630感觉坑有点多。还有MBED官网上也看到好几个人都提问蓝牙模块的用法,但是至今没有有效的回答。所以综合以上情况,个人思考再三还是决定弃用板上的蓝牙模块了。 二、改用蓝牙串口透传模块 虽然板上的那个蓝牙模块一时半会儿玩不转,但是实验还要继续啊,按照之前写的目标蓝牙还是要想法用上的。正好手上有一个蓝牙透传模块XM-26B在吃灰,巧的是这个也是双模的。用过蓝牙透传模块的都知道,这个用起来就很简单了,因为他本身包含了蓝牙协议,无需我们操心,我们只管把它当做透明的串口使用就是了。 三、实验结果 首先根据实验需要,在命令模式下把蓝牙透传模块的波特率改为115200,其余参数一般无需更改。 MAX32630FTHR板使用UART2(P3.1和P3.0)来和蓝牙透传模块交叉连接。 程序上修改很简单,把之前第四篇帖子的程序里串口改为现在UART2就可以了,此外还用了用户按键来控制MAX30102模块的初始化。 1. 电脑端验证 电脑上首先要有一个蓝牙适配器来接收数据。因为使用的蓝牙透传模块是双模的,所以市面上绝大多数的适配器应该都没问题,我使用的就是一个十几元的CSR芯片的适配器。 在保证电脑和蓝牙透传模块配对并连接的情况下,打开相应串口(SPP服务对应的)就可以接收到数据了,如下图: 2. Andorid手机验证 用自己的华为Mate9手机做实验,装上一个类似串口软件的APP叫Bluetooth Chat,同样也是完成和蓝牙透传模块的配对后,就可以得到数据输出: 3. Ipad验证 上面两种是用的经典蓝牙模式来传输的数据,但是在IOS系统里要用BLE的模式来传输数据。使用手边的一个IPAD做了测试,装上一个软件名为Lightblue。然后扫描并配对蓝牙透传模块,在可用的几个服务中找到serial Port notify characteristic就可以显示接收到的数据了: 总结: 1. MAX32630FTHR板本身自带蓝牙模块PAN1326B缺乏相应蓝牙协议栈支持,使用起来困难重重,不适合短时间上手,所以弃用。 2. 使用了上手简单的蓝牙透传模块XM-26B来实现数据的无线传输 3. 验证了蓝牙透传模块在PC端,安卓和IOS系统的传输正确性
|