上次提到了ST有提供一个Web平台的APP,可以配合例程进行一些实验。这里就以P2PServer为例展开,也是对计划的小制作的延展。5 m: K R, N" X7 r2 @9 ^1 x& A
打开例程、编译、烧录这些都不用说,展开工程目录,可以看到如下分组
4 Q- ?! ? }3 n6 s$ n* A
; s1 K/ h$ ]$ S! J2 [# N 已经标记了需要主要关注的地方,从主程序入口可以一步一步挖掘到蓝牙应用函数的地方。通过查看代码,定位了这个程序中对LED控制的代码段,如下( D) ~7 e( h |
- u. c& h2 K: q- J
打开Web App来看下,是什么样子的7 {5 ~% I. Z- O
8 |: z- P% T- X! N" P 板卡程序烧录好以后,复位程序,这个时候,就可以用手机或电脑蓝牙搜索板卡的信号了。WEB端的操作是这样的。
/ y( q8 a2 j v/ K3 v# }8 k' ]
$ [. O- A: I* `+ v& ~5 D
因为我已经连接过了,所以有配对记录,连接成功后,就可以进入到上一幅图片的操作页面。点击按钮可以打开和关闭板子上的LED,按钮上的字符也会自行改变状态。下面的输入框,输入0x01和0x0也可以打开和关闭LED,这只是WEB UI呈现的不同,实际发送的有效数据内容都是0x01和0x0。到这里,APP控制LED的方法已经很清晰了。修改程序,添加两个指令,留着给RGB灯条的控制使用。程序段如下,是很简单的内容:$ e: R+ j+ T k7 O* M, d
+ f; V6 T1 Y, ` @3 d3 i- /* USER CODE BEGIN Service1Char1_WRITE_NO_RESP_EVT */
% A- { c8 ~8 f% z - if(p_Notification->DataTransfered.p_Payload[1] == 0x01)
( v* o2 P2 F) |( P+ C - {
' L3 i! g/ u6 G5 _ - BSP_LED_On(LED_BLUE);+ h& b, u8 G6 I; H; N
- APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 ON\n"); ( G7 ]) W: R6 [! P
- P2P_SERVER_APP_Context.LedControl.Led1 = 0x01; /* LED1 ON */
9 o8 y5 m( J. }+ u& C7 S8 \ - }
: h: w; D& F5 m% t. | - if(p_Notification->DataTransfered.p_Payload[1] == 0x00)
5 u+ o/ j, k- V( E) a; v - {8 M) i$ n- O/ z: p- |
- BSP_LED_Off(LED_BLUE);
/ B4 d6 L& P4 t1 Y5 g - APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 OFF\n"); $ ]* ~+ A* V \2 T' }+ `9 A
- P2P_SERVER_APP_Context.LedControl.Led1 = 0x00; /* LED1 OFF */- R- c% ^7 i4 }( [" n% ]1 f: b
- }' p( a% ^2 h+ f7 @& T( ^& e6 a: @
- if(p_Notification->DataTransfered.p_Payload[1] == 0x02)
3 X; H+ X0 c* i, I- j4 H - {; \2 k% a! M! M& n3 S% b
- BSP_LED_On(LED_RED);
E0 q, @! p# P( a - APP_DBG_MSG("rgb set 1\n");
9 o, _' ~. R$ P( x5 |3 N% _# Z - P2P_SERVER_APP_Context.LedControl.Led1 = 0x02; /* LED1 OFF */ K+ g# M1 k1 s9 ~6 f
- }
3 ?1 G$ Q3 k3 x: A9 k - if(p_Notification->DataTransfered.p_Payload[1] == 0x03)
N/ K: J7 c! ]/ } - {
1 B- s& Z' i+ { - BSP_LED_Off(LED_RED);! T, Y, S7 D9 T: X9 Y; c
- APP_DBG_MSG("rgb set 2\n"); % y. T& R$ P4 q$ ~1 M) G1 n$ v
- P2P_SERVER_APP_Context.LedControl.Led1 = 0x03; /* LED1 OFF */3 i( x* }' A0 c( s. H! t
- }
1 }5 C# Q5 m- G, [/ i3 o8 k - /* USER CODE END Service1Char1_WRITE_NO_RESP_EVT */
复制代码 这样就可以有4条指令来给到板卡了。接下来一步做4种RGB灯条的效果。ST的WIKI资料做的真不错,涵盖了绝大部分内容。. \; @' w7 z: n+ n) _
# }* W3 U# q, u2 f$ U+ `2 W4 {
0 A) j G+ [- {7 T1 l |
厉害,还有下一集吗?
学习学习蓝牙
学习学习
学习一下