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

【STM32WBA52CG评测】 WebApp 控制LED

[复制链接]
BinWin 发布时间:2023-8-20 17:15
       上次提到了ST有提供一个Web平台的APP,可以配合例程进行一些实验。这里就以P2PServer为例展开,也是对计划的小制作的延展。8 T+ i: w$ S& a$ C8 b2 l5 Z
        打开例程、编译、烧录这些都不用说,展开工程目录,可以看到如下分组
  G- H, g4 ]- x* s) N       b.png $ J) R9 E# r2 ~4 `" O: V
       已经标记了需要主要关注的地方,从主程序入口可以一步一步挖掘到蓝牙应用函数的地方。通过查看代码,定位了这个程序中对LED控制的代码段,如下
$ S: H9 N- Y/ {; Y% n( ]  `8 _         c.png
( k& @4 G2 }' Y0 ^' q- b0 K           打开Web App来看下,是什么样子的4 J# H3 l9 A- T3 p( n
            d.png
: {" w) \: s% i* Q6 ~; N) d          板卡程序烧录好以后,复位程序,这个时候,就可以用手机或电脑蓝牙搜索板卡的信号了。WEB端的操作是这样的。
% b! }0 z+ V2 {0 b2 A, z, U            e.png
2 t6 {. l6 [1 O# c; q         因为我已经连接过了,所以有配对记录,连接成功后,就可以进入到上一幅图片的操作页面。点击按钮可以打开和关闭板子上的LED,按钮上的字符也会自行改变状态。下面的输入框,输入0x01和0x0也可以打开和关闭LED,这只是WEB UI呈现的不同,实际发送的有效数据内容都是0x01和0x0。到这里,APP控制LED的方法已经很清晰了。修改程序,添加两个指令,留着给RGB灯条的控制使用。程序段如下,是很简单的内容:
0 X- ]) v) w7 X3 b3 l2 L5 d
2 a8 s8 M% h# [- _) q6 _5 M
  1.       /* USER CODE BEGIN Service1Char1_WRITE_NO_RESP_EVT */
    ; {* L" N2 {, }" ]
  2.       if(p_Notification->DataTransfered.p_Payload[1] == 0x01)+ w  I2 y/ X% ?3 E% N8 v( m: v' L) N" H
  3.       {1 A, b. k" \* e* H- [8 Z. V
  4.         BSP_LED_On(LED_BLUE);  h* E9 r' @5 X$ N' N+ _  }
  5.         APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 ON\n"); / w5 k/ U2 g+ _. _
  6.         P2P_SERVER_APP_Context.LedControl.Led1 = 0x01; /* LED1 ON */% u/ [9 _8 \) O) D
  7.       }& X4 D& l) I3 Q2 S- u& T
  8.       if(p_Notification->DataTransfered.p_Payload[1] == 0x00)
    % }. u3 L7 e- D4 }
  9.       {
    , a2 b+ Y" F; s+ e
  10.         BSP_LED_Off(LED_BLUE);# }7 y8 U& v/ N2 g& U7 ^
  11.         APP_DBG_MSG("-- P2P APPLICATION SERVER : LED1 OFF\n");
    : I6 m/ S( Q* g5 P2 z5 H
  12.         P2P_SERVER_APP_Context.LedControl.Led1 = 0x00; /* LED1 OFF */
    ( z1 I6 S, m, Z% x- [
  13.       }7 Q, h$ R! r6 o% H5 o4 ~+ R7 Q) L
  14.                         if(p_Notification->DataTransfered.p_Payload[1] == 0x02); i/ K; c6 n6 m& ~) y
  15.       {
    7 N8 m  g) E3 j3 M4 d% \/ A
  16.         BSP_LED_On(LED_RED);
    $ a0 x* x, q7 L( s& Q
  17.         APP_DBG_MSG("rgb set 1\n"); - D, D. p7 \7 S. {7 H
  18.         P2P_SERVER_APP_Context.LedControl.Led1 = 0x02; /* LED1 OFF */% Z% P  I4 l. z( d: B; e9 \& G
  19.       }; W4 ]( i: Y9 X4 ~/ A# i  _: o, c
  20.                          if(p_Notification->DataTransfered.p_Payload[1] == 0x03)
    ( y5 v3 v7 t& m, P! R2 g* _+ J
  21.       {
    / h* H* A/ R  J# X, Z- v+ {. B# `5 X, A
  22.         BSP_LED_Off(LED_RED);
    3 f- E, t2 |" {8 R
  23.         APP_DBG_MSG("rgb set 2\n");
    ' U5 U2 ]  J1 c0 P* _5 q6 v
  24.         P2P_SERVER_APP_Context.LedControl.Led1 = 0x03; /* LED1 OFF */. k/ |' p9 J+ c" b" g8 X
  25.       }
    8 O* D: o/ `. ^/ R' ]) ^% U
  26.       /* USER CODE END Service1Char1_WRITE_NO_RESP_EVT */
复制代码
         这样就可以有4条指令来给到板卡了。接下来一步做4种RGB灯条的效果。ST的WIKI资料做的真不错,涵盖了绝大部分内容。
& y1 B* ~! W# h% A: |6 \* J  {' f- S# W% v7 f" o0 R0 P/ {8 Q
% T, Z% `0 \1 d1 o6 h
1 收藏 评论4 发布时间:2023-8-20 17:15

举报

4个回答
Yude 回答时间:2023-8-21 14:31:13

厉害,还有下一集吗?

STMWoodData 回答时间:2023-8-29 09:02:35

学习学习蓝牙

qintian0303 回答时间:2023-8-29 09:44:13

学习学习

无极考拉 回答时间:2023-8-29 13:06:44

学习一下

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版