
读学习向导,官方给出的例程中Peer to Peer ,即P2PServer 例程,用来学习使用两条特征值完成 手机和板卡的双向交互。方便学习者继续熟悉BLE设备的使用。 继续使用keil 5来完成项目的Debug。打开手机app 中ST BLE ToolBox ,如图1所示: ![]() 图1 上次app不好使,更新系统后,卸载并重新安装该款app, 能够正常连接使用。 打开app,搜索板卡,会显示p2pS_AD的连接,点击connect,如图2所示: ![]() 图2 点进去,会出现如图3所示的界面 ![]() 图3 展开profile, 通过滑块开启或关闭板卡的LED1 蓝灯,效果如图4所示: ![]() 图4 点击B1 button, app 界面会收到数据反馈,如图5所示: ![]() 图5 测试完功能,就得需要修改为自己能理解的代码了。首先搞清楚板卡和手机究竟发了哪些数据。 找到板卡LED相应函数,在p2p_server_app.c 的文件里,就是void P2P_SERVER_Notification(P2P_SERVER_NotificationEvt_t *p_Notification)这个函数。 定义了一个全局变量的数组,并在函数内完成赋值,如下所示:
通过app下发指令,接收到的数据如图6和图7所示: ![]() 图6 ![]() 图7 是的,是两个字节,0x0001 代表开灯,0x0000代表关灯。 这个后面要修改为反转LED3. 那按键返回的是什么数值呢,手机app上Details已显示,如图8和图9所示: ![]() 图8 ![]() 图9 对,就是0x0100和0x0101。 完成了双向通信,修改板卡代码,发送0x0002, Toggle LED3 红灯 添加程序,如下所示:
在app中发送这两个字节,如图10所示: ![]() 图10 效果如图11所示: ![]() 图11 基本完成和理解了数据的双向交互的过程,但官方提供的程序代码还需要好好深入理解,方便拿来使用到项目中。 |
【NUCLEO-WBA65RI评测】使用BLE-Serial-comm进行BLE调试,蓝牙BLE动态运行
【NUCLEO-WBA65RI评测】评测小结
【NUCLEO-WBA65RI评测】4.Android端进行蓝牙OTA升级
【NUCLEO-WBA65RI评测】 蓝牙低功耗连接与数据传输
【NUCLEO-WBA65RI评测】Android端进行蓝牙OTA升级
【NUCLEO-WBA65RI评测】低功耗模式实测
【NUCLEO-WBA65RI评测】WireShark分析作为USB HID device设备的包和速度
【NUCLEO-WBA65RI评测】物联网 LED
【NUCLEO-WBA65RI评测】蓝牙体温计
【NUCLEO-WBA65RI评测】Home Assistant 物联网心率计