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

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

[复制链接]
jundao721 发布时间:2025-9-7 20:42
      读学习向导,官方给出的例程中Peer to Peer ,即P2PServer 例程,用来学习使用两条特征值完成 手机和板卡的双向交互。方便学习者继续熟悉BLE设备的使用。
4 q$ u( n" L0 X: j" {继续使用keil 5来完成项目的Debug。打开手机app 中ST BLE ToolBox ,如图1所示:2 ^7 S$ d: [  M) i# q) ^
3-1.jpg
7 {$ T6 M  r1 [* L; y4 B) B3 z图1
, L& e/ S8 r/ |6 s2 g
0 V) Y1 Q5 O. A4 H) X. _- c上次app不好使,更新系统后,卸载并重新安装该款app, 能够正常连接使用。
) C0 w3 g3 q* \9 z7 L# o1 p6 U! e打开app,搜索板卡,会显示p2pS_AD的连接,点击connect,如图2所示:1 [: u  g+ x( R7 y. l, V% t, |
3-2.jpg ) c3 e& e8 L8 k- x
图2
3 V  ~; N" N4 C& m9 {
# X3 S1 k* z+ c% n+ i点进去,会出现如图3所示的界面& b$ b! w9 Y2 \* [( j  `  ?
3-3.jpg
; O* L6 }+ z8 q/ V' t0 Z图30 ?" G- m2 W0 Q9 O* @/ U2 w7 _

. L" \. h# ?# @5 k# J/ r展开profile, 通过滑块开启或关闭板卡的LED1 蓝灯,效果如图4所示:( U* y! I* Q; Q& {7 f+ q+ {' q8 ?5 k- [- y
3-4.jpg
: j1 z3 z! g8 D7 U' z+ ]. v5 o" W图4
( T3 P" M& w0 y4 e! i2 I' ?2 ?
1 G- k/ X2 ?! [( i2 W" D. W. T点击B1 button, app 界面会收到数据反馈,如图5所示:
% b: ]# g" b! u  ]3 C: M! N/ t1 `; c 3-5.jpg ! S; z* R% D$ m' Y4 j& c4 e
图5
5 `9 U" _5 y* c+ D: R  o6 Y+ Q+ s8 c5 M# G+ @# P  c5 h/ r
测试完功能,就得需要修改为自己能理解的代码了。首先搞清楚板卡和手机究竟发了哪些数据。, n; L$ r; y$ I7 @% N6 C* P" o! f
找到板卡LED相应函数,在p2p_server_app.c 的文件里,就是void P2P_SERVER_Notification(P2P_SERVER_NotificationEvt_t *p_Notification)这个函数。, H& {; c/ _- G3 A% B1 R
定义了一个全局变量的数组,并在函数内完成赋值,如下所示:, y! n/ X% Y! i* ?# {" v
  1.      Rdata[0] = p_Notification->DataTransfered.p_Payload[0];2 e; V/ A0 C3 Y; w
  2.                    Rdata[1] = p_Notification->DataTransfered.p_Payload[1];
复制代码

+ R3 t$ n+ j3 `+ b通过app下发指令,接收到的数据如图6和图7所示:
- E- e$ S8 \. Y3 [( h 3-6.png
: e8 A$ r6 K7 @& W7 z5 _图6
& ], l# i5 y: O6 v/ Y. d$ H
$ M8 o) A) }- a+ s 3-7.png + n% `$ Q$ p+ x* Z
图7' U! \$ U% x* i' ^$ a) U( T* {

  F, w8 t% `, a, e2 S是的,是两个字节,0x0001 代表开灯,0x0000代表关灯。
% E8 l: l/ @% _这个后面要修改为反转LED3.! W4 e2 {7 O. h6 g9 n
, _, d! G3 R; }; M6 @) [( {* {5 T
" R! v1 s! q) `  i
那按键返回的是什么数值呢,手机app上Details已显示,如图8和图9所示:
/ c$ ]5 K$ E, T( ]0 X6 e# A. d! s 3-8.jpg 9 u- ~2 A9 p9 e1 r  b" Q( B" N9 C
图8
& {* f/ l2 @- `+ I- q. f 3-9.jpg 4 b! E' f$ w' ?0 d
图9
& _" F, j' V, k; M% a* r/ n$ L. w; a4 r2 ?+ J- S# H
对,就是0x0100和0x0101。' R& l% t3 c' ^, H2 ]- q

  ~  S! D0 S5 Z
* k4 C% b8 I( a# `: h) }' ]+ p9 N+ q
完成了双向通信,修改板卡代码,发送0x0002, Toggle LED3 红灯" X' g: [& c7 \5 h- S
" L/ ?/ Z) B* ^9 t5 N2 w# |% R

& N7 ]9 D6 D/ S* q5 ~添加程序,如下所示:
! \3 s' c  i- H/ s) [( B. P
  1.     if(p_Notification->DataTransfered.p_Payload[1] == 0x02)
    - W$ J, |+ U. \. ]) }  q$ T
  2.       {0 [  A5 z+ p  W* H+ F
  3.         #if (CFG_LED_SUPPORTED == 1)4 s. Y# I( X, R0 r% `# L
  4.         BSP_LED_Toggle(LED_RED);  // add code for testing7 w' w( s! }% R; ^
  5. //                                HAL_Delay (1000);( Y) w8 N* V- z+ i, w- [
  6.         #endif
    / T6 X8 O& u( d* y
  7.         LOG_INFO_APP("-- P2P APPLICATION SERVER : LED1 OFF\n");! y  n3 p* T( K8 _/ ~
  8.         P2P_SERVER_APP_Context.LedControl.Led1 = 0x02; /* LED1 OFF */
    + B3 O' d5 Y& \( i6 T0 w
  9.       }
复制代码

$ p7 G" W3 o# \: j' p在app中发送这两个字节,如图10所示:. H: w  n9 J6 a6 i! ]0 m: Q/ z0 w
3-10.jpg # R( Y3 l7 ]# n% T6 m# v" \
图100 a/ E2 _, R5 A4 y9 u5 w
4 ~3 H7 n2 A; q: }' [0 Z0 a5 p
效果如图11所示:
" V: l5 [# Y8 z9 c9 T, N 3-11.jpg $ u- y, F* ?. Z! f
图11
3 I8 O0 [, a  V5 F# Z基本完成和理解了数据的双向交互的过程,但官方提供的程序代码还需要好好深入理解,方便拿来使用到项目中。3 r% ]8 D  C) c/ Z4 q
$ ]$ ?$ k6 H: a* Q
收藏 评论0 发布时间:2025-9-7 20:42

举报

0个回答

所属标签

相似技术帖

官网相关资源

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