前言 本文将通过一个官方自带的速度、踏频例程,简单演示一下BLE的应用。
例程导入 官方SDK提供了很多BLE的例程,使用MCUXpreeso 可以很方便导入想要的例子。如图1:
图1
参考手册 在查看代码前,建议先阅读一下官方关于BLE部分的在线帮助文档。文档对BLE协议做了简单介绍,每个例程也有对应的说明。文档位于KW41Z主页--->文档--->支持信息,如图2:
图2
编译、运行 编译并烧写代码到开发板,具体怎么操作,其它网友说得很清楚了,这里就不废话了。
程序跑起来之后,板子上面的LED狂闪,手机蓝牙搜索不到信号,什么问题?难道这个跟Nordic一样协议栈需要单独烧录。不急,先来看一下在线帮助文档。原来需要按一下按键4,BLE才会广播。如图3:
图3
按下按键4,只有红色LED在闪烁,此时手机已经可以搜索到信号,打开官方的APP―Kinetis BLE Toolbox,选择Cycling Speed and Cadence ,点击名为“FSL_BLE_CSCS”的设备进行连接,什么,配对需要密码?好吧,密码是六个9。成功连接后,红色LED常亮。此时可以看到界面显示了速度、踏频以及轮子周长。点击轮子周长旁边的设置按键,可以设置轮子周长。并且速度每秒变化一次。如图4所示:
图4
接下来使用LightBlue看一下蓝牙具体信息。设备包含三个服务:Cycling Speed and Cadence 、Battery Service和Device information。如图5、6所示:
图5
图6
UUID:1816即为Cycling Speed and Cadence 。可以看到有四个特性。分别为CSC Measurment、CSC Feature、Sensor location和SC Control Point。更加详细的信息请参考蓝牙技术联盟的相应规范。
总结 在使用IOS蓝牙进行过配对连接之后,开发板重新上电,蓝牙无法连接,总是失败。解决办法是在IOS系统设置里忽略该设备,即删除绑定信息。分析应该是之前的绑定后,手机端存储了相关绑定信息,而开发板没有将信息保存起来。导致再次连接时,加密启动失败。
后面有时间的话,再来一篇研究一下从机端的信息保存。