打印
[蓝牙]

多协议无线开发板FRDM-KW40Z 学习笔记2_BLE-Demo演示程序试用

[复制链接]
1409|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mars4zhu|  楼主 | 2017-2-22 10:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1.3. 使用其他BLE调试App进行BLE通讯
BLE调试主要是在BLE广播数据、RSSI信号强度和时序,各Service/characteristicread/write/notify等底层特性。官方App是针对具体的例程进行的上层界面封装。而为了接触到BLE通讯的底层特性,探究各个ServiceCharacteristic的手动读写等操作,需要使用BLE调试App
目前比较多的是lightblue以及BLE芯片厂商的调试App。这里主要借助NordicnRF Master
1.3.1 使用CySmart进行BLE调试
广播发现BLE设备,可以显示RSSi信号强度数值。
112  CySmart扫描到的BLE广播设备(已修改设备名为Hi,KW40Z
点击即可进行连接,连接后列举Service(对于BLE规范定义的标准Service都能显示标准的Service-Name,对于例程自定义的service只能显示UUID
113  FRDM-KW40Z演示例程的详细Service列表
此处为LED控制对应的Service,代码中对应为led_control_service

/* LED Control Service */

UUID128(uuid_service_led_control, 0xE0, 0x1C, 0x4B, 0x5E, 0x1E, 0xEB, 0xA1, 0x5C, 0xEE, 0xF4, 0x5E, 0xBA, 0x00, 0x56, 0xFF, 0x02)

读取ServiceCharacteristic,对于BLE规范定义的标准Characteristic都能自动读取并显示。
114  显示标准的Device Info Service和自定义的Led_control_serviceCharacteristic
对于例程自定义的Characteristic只能显示各个CharacteristicUUID,如需要读写则要点击相应的Characteristic后进入读/写界面。
从代码中得知led_control_serviceCharacteristicUUID包含有LED的状态和控制两个Characteristic特征值。

/* LED Status Characteristic */

UUID128(uuid_characteristic_led_status, 0xE0, 0x1C, 0x4B, 0x5E, 0x1E, 0xEB, 0xA1, 0x5C, 0xEE, 0xF4, 0x5E, 0xBA, 0x00, 0x57, 0xFF, 0x02)

/* LED Control Characteristic */

UUID128(uuid_characteristic_led_control, 0xE0, 0x1C, 0x4B, 0x5E, 0x1E, 0xEB, 0xA1, 0x5C, 0xEE, 0xF4, 0x5E, 0xBA, 0x01, 0x57, 0xFF, 0x02)

点击具有Read属性,即UUID02ff5700开头的Characteristic,可以读取到LED的状态。其中07状态是在三个LED全部点亮的状态下读取的,04状态是在LED2单独点亮的状态读取的。浏览代码可以得知每个LED占用一个bit位,LED2/3/4分别为读取的LED Status Characteristic0/1/2位。
115  读取的LED Status Characteristic
点击具有Write属性,即UUID02ff5701开头的Characteristic写入LED,浏览代码后可以得知led Control Characteristic的格式为两个字节,第一个为需要控制的LED序号(0/1/2),第二个为需要控制的LED状态,0代表LED熄灭,1代表LED点亮。因此写入如下,此时LED点亮,通过读取LED状态值显示对应的LED状态。
116  写入的LED Control Characteristic
117  设置SwitchNotify并实时显示按键状态改变的时间和按键值
118  设置Potential MeterNotify并实时显示电位器值和改变的时间
119  设置AccelerateNotify并实时显示加速度传感器数据和改变的时间
120  设置CompassNotify并实时显示磁传感器数据和改变的时间
其余各个Service及其Characteristic就不一一列举了,手动read/write//notify方式都类似。
1.3.2 使用nRF Master Control Panel进行调试
广播扫描发现BLE设备
121  nRF Master Control Panel 扫描到的BLE广播设备和对应的RSSI曲线
nRFBLE调试工具还能以曲线形式显示各广播BLE设备的RSSI信号强度,可见FRDM-KW40Z的信号强度远远高于周围的其他BLE设备,因为开发板就在手机附近。
点击Connect后,App会开始Discovery所有的ServiceCharacteristic,并以列表的形式显示。点击每一个Service显示该Service包含的Characteristic,再点击向下的箭头为读取,点击向上箭头为写入。
122 Service列表和标准的Device Info Service的各Characteristic
点击第一个Unknown Service,同样的方式读取LED状态和写入LED控制字
123  读取LED Status Characteristic的值
124  写入LED Control Characteristic
在按键的Service里面使能Notify后,实时显示按键状态改变值和时间。
125  Notify按键状态并显示按键状态和时间以及收发BLE数据包的日志记录
日志记录里面详细记录了每一次Discover Service/Characteristic,读//使能notify等操作。对于调试来说非常有帮助。

相关帖子

沙发
dirtwillfly| | 2017-2-25 10:42 | 只看该作者

使用特权

评论回复
板凳
四维理工男| | 2017-3-18 22:06 | 只看该作者
感谢分享

使用特权

评论回复
地板
xjxhsjl| | 2017-3-22 11:55 | 只看该作者
谢谢分享,目前我正在找这些无线通信的控制。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

139

帖子

4

粉丝