你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【NUCLEO-WBA65RI评测】3.P2PServer学习双向数据交互

[复制链接]
jundao721 发布时间:2025-9-7 20:42
      读学习向导,官方给出的例程中Peer to Peer ,即P2PServer 例程,用来学习使用两条特征值完成 手机和板卡的双向交互。方便学习者继续熟悉BLE设备的使用。
继续使用keil 5来完成项目的Debug。打开手机app 中ST BLE ToolBox ,如图1所示:
3-1.jpg
图1

上次app不好使,更新系统后,卸载并重新安装该款app, 能够正常连接使用。
打开app,搜索板卡,会显示p2pS_AD的连接,点击connect,如图2所示:
3-2.jpg
图2

点进去,会出现如图3所示的界面
3-3.jpg
图3

展开profile, 通过滑块开启或关闭板卡的LED1 蓝灯,效果如图4所示:
3-4.jpg
图4

点击B1 button, app 界面会收到数据反馈,如图5所示:
3-5.jpg
图5

测试完功能,就得需要修改为自己能理解的代码了。首先搞清楚板卡和手机究竟发了哪些数据。
找到板卡LED相应函数,在p2p_server_app.c 的文件里,就是void P2P_SERVER_Notification(P2P_SERVER_NotificationEvt_t *p_Notification)这个函数。
定义了一个全局变量的数组,并在函数内完成赋值,如下所示:
  1.      Rdata[0] = p_Notification->DataTransfered.p_Payload[0];
  2.                    Rdata[1] = p_Notification->DataTransfered.p_Payload[1];
复制代码

通过app下发指令,接收到的数据如图6和图7所示:
3-6.png
图6

3-7.png
图7

是的,是两个字节,0x0001 代表开灯,0x0000代表关灯。
这个后面要修改为反转LED3.


那按键返回的是什么数值呢,手机app上Details已显示,如图8和图9所示:
3-8.jpg
图8
3-9.jpg
图9

对,就是0x0100和0x0101。


完成了双向通信,修改板卡代码,发送0x0002, Toggle LED3 红灯


添加程序,如下所示:
  1.     if(p_Notification->DataTransfered.p_Payload[1] == 0x02)
  2.       {
  3.         #if (CFG_LED_SUPPORTED == 1)
  4.         BSP_LED_Toggle(LED_RED);  // add code for testing
  5. //                                HAL_Delay (1000);
  6.         #endif
  7.         LOG_INFO_APP("-- P2P APPLICATION SERVER : LED1 OFF\n");
  8.         P2P_SERVER_APP_Context.LedControl.Led1 = 0x02; /* LED1 OFF */
  9.       }
复制代码

在app中发送这两个字节,如图10所示:
3-10.jpg
图10

效果如图11所示:
3-11.jpg
图11
基本完成和理解了数据的双向交互的过程,但官方提供的程序代码还需要好好深入理解,方便拿来使用到项目中。

收藏 评论0 发布时间:2025-9-7 20:42

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版