上次提到了ST有提供一个Web平台的APP,可以配合例程进行一些实验。这里就以P2PServer为例展开,也是对计划的小制作的延展。$ A- h4 ^7 m& d) N
打开例程、编译、烧录这些都不用说,展开工程目录,可以看到如下分组% r7 u" ^2 g& s0 Q; O5 Q; C
' M( y3 A4 a$ O2 u4 D' f9 H( D \ 已经标记了需要主要关注的地方,从主程序入口可以一步一步挖掘到蓝牙应用函数的地方。通过查看代码,定位了这个程序中对LED控制的代码段,如下
1 y; c4 K% ?) v! h- y' y
1 V5 A9 k7 L$ H4 D- T2 }( `
打开Web App来看下,是什么样子的
7 y+ F5 ~" {* ?$ V( C G
5 y! U; S( ]+ ?2 _
板卡程序烧录好以后,复位程序,这个时候,就可以用手机或电脑蓝牙搜索板卡的信号了。WEB端的操作是这样的。% q ^5 M; x( s/ i5 {1 F
- ~1 H7 {9 ?& g5 V 因为我已经连接过了,所以有配对记录,连接成功后,就可以进入到上一幅图片的操作页面。点击按钮可以打开和关闭板子上的LED,按钮上的字符也会自行改变状态。下面的输入框,输入0x01和0x0也可以打开和关闭LED,这只是WEB UI呈现的不同,实际发送的有效数据内容都是0x01和0x0。到这里,APP控制LED的方法已经很清晰了。修改程序,添加两个指令,留着给RGB灯条的控制使用。程序段如下,是很简单的内容:
6 U% e) m* u/ M6 g2 U' W1 M) g
% l2 u* l! y; j6 s4 f- /* USER CODE BEGIN Service1Char1_WRITE_NO_RESP_EVT */6 ?/ L9 |6 W& ~8 ~) X
- if(p_Notification->DataTransfered.p_Payload[1] == 0x01)
6 M' s j' Y7 S2 I9 A w0 p - {
( n* j5 ]5 l, e& S6 a; I - BSP_LED_On(LED_BLUE);3 z# D% Q* @ a( R* B/ u# y& r
- APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 ON\n");
7 K4 p/ @" w, o! w# d - P2P_SERVER_APP_Context.LedControl.Led1 = 0x01; /* LED1 ON */
/ O$ O3 E4 ?: i0 c( W2 }; l - }
9 C$ w7 D- D9 ]/ W' F% l$ G% O$ ~ - if(p_Notification->DataTransfered.p_Payload[1] == 0x00)
! I9 x- H6 `2 t% Z- u! P - {
+ w* v+ `8 V7 y, c0 R% a1 D' n* X - BSP_LED_Off(LED_BLUE);
/ g0 \* x$ E8 j7 ^ - APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 OFF\n");
, ^8 d4 y) K7 q, W' |6 o0 ` - P2P_SERVER_APP_Context.LedControl.Led1 = 0x00; /* LED1 OFF */: J* G6 y" Q7 k2 V& Q5 S
- }1 p5 \0 H8 ^# A) M% Z5 a
- if(p_Notification->DataTransfered.p_Payload[1] == 0x02)
6 O/ g; f4 `2 ~5 E: C - {
: w2 B( f. [& p" O - BSP_LED_On(LED_RED);% u' D4 x3 Q" e
- APP_DBG_MSG("rgb set 1\n"); - d; F6 H* J' C# _& y; f% x
- P2P_SERVER_APP_Context.LedControl.Led1 = 0x02; /* LED1 OFF */
, Q2 U$ _* h- L* \ - }5 j. _/ `1 J! s" b3 b# I. q
- if(p_Notification->DataTransfered.p_Payload[1] == 0x03)$ g# }2 t7 ?: Q- q- q5 n3 P
- {$ x! v d5 \" L* V3 b$ u" P
- BSP_LED_Off(LED_RED);
2 o+ ]+ |& o1 t/ I' Z7 M1 L - APP_DBG_MSG("rgb set 2\n"); 3 O3 {! ^2 a8 H: `, C
- P2P_SERVER_APP_Context.LedControl.Led1 = 0x03; /* LED1 OFF */
! K% ] r7 J9 |# u2 ~' ~1 e, @- S - }& J. f! Z/ m7 K8 m/ }0 E# k
- /* USER CODE END Service1Char1_WRITE_NO_RESP_EVT */
复制代码 这样就可以有4条指令来给到板卡了。接下来一步做4种RGB灯条的效果。ST的WIKI资料做的真不错,涵盖了绝大部分内容。3 }. b7 \8 q* ]+ i) x. J& U
; g" k5 f& e! s. R' p
( }, {; _. w" ]6 d
|
厉害,还有下一集吗?
学习学习蓝牙
学习学习
学习一下