上次提到了ST有提供一个Web平台的APP,可以配合例程进行一些实验。这里就以P2PServer为例展开,也是对计划的小制作的延展。" ]$ W3 g- c {1 G/ O5 P5 r
打开例程、编译、烧录这些都不用说,展开工程目录,可以看到如下分组
9 j# V1 w! l- K' n" ]: M ^* e/ P
' a h2 a( ~! w9 w, \
已经标记了需要主要关注的地方,从主程序入口可以一步一步挖掘到蓝牙应用函数的地方。通过查看代码,定位了这个程序中对LED控制的代码段,如下
( F K9 t" H4 I }6 F9 V
0 ~3 Q1 i9 K& }, y3 r( g
打开Web App来看下,是什么样子的
+ N6 }! b# W6 P/ O% u
4 E1 N. N8 Z: b. C 板卡程序烧录好以后,复位程序,这个时候,就可以用手机或电脑蓝牙搜索板卡的信号了。WEB端的操作是这样的。* Y3 F; ?. Z- s
. ?: P& Y2 p" w/ ~$ ^ 因为我已经连接过了,所以有配对记录,连接成功后,就可以进入到上一幅图片的操作页面。点击按钮可以打开和关闭板子上的LED,按钮上的字符也会自行改变状态。下面的输入框,输入0x01和0x0也可以打开和关闭LED,这只是WEB UI呈现的不同,实际发送的有效数据内容都是0x01和0x0。到这里,APP控制LED的方法已经很清晰了。修改程序,添加两个指令,留着给RGB灯条的控制使用。程序段如下,是很简单的内容:
9 X) A2 w4 Z1 d" ^6 o; U9 O' g# R: p \" f, |* Y
- /* USER CODE BEGIN Service1Char1_WRITE_NO_RESP_EVT */
d3 m" x/ W$ n- i# ^3 |6 ` - if(p_Notification->DataTransfered.p_Payload[1] == 0x01)
- s, m5 ^# ~# ` - {0 Z" R/ {. l* k; d- S4 o
- BSP_LED_On(LED_BLUE);
" y. J8 @* B6 h( s2 C - APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 ON\n");
: U p* S0 ~( j0 K - P2P_SERVER_APP_Context.LedControl.Led1 = 0x01; /* LED1 ON */
- S4 r" b" f4 y6 G& y - }
N) W5 A7 p7 _4 H& X - if(p_Notification->DataTransfered.p_Payload[1] == 0x00)4 V, O8 L( o) `- `8 o
- {
# z& \ `- Z/ ` P" m - BSP_LED_Off(LED_BLUE);
, P; y7 O& p O; e5 w" M - APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 OFF\n");
+ N9 s( N5 F" W4 j! J; p9 R - P2P_SERVER_APP_Context.LedControl.Led1 = 0x00; /* LED1 OFF */5 \6 o- G% A/ e1 r @
- }1 r+ m6 w+ {% _* ~5 C
- if(p_Notification->DataTransfered.p_Payload[1] == 0x02)
# T1 v3 O9 V+ J& X: N- c - {3 ^2 J( u) l: `, g
- BSP_LED_On(LED_RED); k. R+ Q x" w
- APP_DBG_MSG("rgb set 1\n"); / x$ L! n V" w* y/ M
- P2P_SERVER_APP_Context.LedControl.Led1 = 0x02; /* LED1 OFF */
* @0 z! | @; ]( t9 t - }
( t# q: ~' l0 g' ~ - if(p_Notification->DataTransfered.p_Payload[1] == 0x03)
- d# ^; u0 ~& W7 J4 ^9 |$ U - {/ \, h$ l% B c6 o9 i2 f
- BSP_LED_Off(LED_RED);1 s$ D! p6 W2 _
- APP_DBG_MSG("rgb set 2\n"); # o: F9 ^' F P- N/ @
- P2P_SERVER_APP_Context.LedControl.Led1 = 0x03; /* LED1 OFF */
, `( F2 V" x+ z( @ - }& F- \2 m, u- e" {/ ~. G( r
- /* USER CODE END Service1Char1_WRITE_NO_RESP_EVT */
复制代码 这样就可以有4条指令来给到板卡了。接下来一步做4种RGB灯条的效果。ST的WIKI资料做的真不错,涵盖了绝大部分内容。
- I" f& K: }; E E; {2 M8 T6 o% e4 w8 N2 g. z& Q% _' O1 S- N
, B/ L* o* u5 J7 C: I. e! [6 v
|
厉害,还有下一集吗?
学习学习蓝牙
学习学习
学习一下