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

STM32L562DK探索板——触摸菜单的实验

[复制链接]
老牛洋车 发布时间:2026-7-28 08:54
官方提供的BSP例程是通过按键轮流执行各个demo模块,操作起来不方便。本实验是通过触摸菜单来随意选择demo模块,操作起来就方便多了。  u' B1 s) K; k) w
5 b' F0 s/ u) p& N# U
在BSP例程中,获得触摸坐标值是通过触摸中断标志和结构体返回的,对应的代码如下:
& s" d: u$ h- \9 r2 C$ Y5 s& Y8 q- ~+ C
    if (TouchDetected == SET)           //触摸信号处理
- H; x/ v; W: q' a9 ?% U/ h* W    {
9 p# M; G: X, j4 ~% q. `      TouchDetected = RESET;
8 N2 t/ Q( i- H4 X8 W4 ~2 I: x) m4 F* k, Y) y6 j* A% O! \& K/ D, i
      if (BSP_TS_Get_MultiTouchState(0, &TsMultipleState) != BSP_ERROR_NONE)" m8 i" r, i( ^" o  e4 K, A3 n! T
      {
# @9 A* ?0 |9 Z* T6 ^+ p/ O        Error_Handler();3 t; u: X) u, b6 c2 y0 h
      }+ q" |: K* w0 w/ o: {
      tou_x = TsMultipleState.TouchX[0];4 k8 L1 O3 |* D& a
      tou_y = TsMultipleState.TouchY[0];. y. h( r$ I5 B2 p

4 M9 [! d7 C/ ^3 O, j! L获得当次触摸坐标后,就可以通过菜单项显示的位置来确定当前触摸的菜单项,代码如下:
) d* y$ n$ ?; E9 P6 F0 O9 Z      now_option = (tou_y -50)/24;      //根据触摸位置确定菜单选项3 [6 T9 e9 t0 K0 O/ F7 ?
解决了触摸菜单项的选择之后,启用对应的demo就简单了,我是直接用switch语句,直观方便:
" M% M! }% g4 ^% t1 s1 `2 @4 p
! K; L" x6 e% i( d& {% C        switch(now_option){
  J; a" X- I" d4 `          case 1:4 R6 {5 C2 n- }. X7 |% C) p( G
            Led_demo();2 f( s2 j; k: C1 t; T$ r4 R+ }
            break;$ k; n- B# s& X/ d8 J) z5 u
          case 2:
1 y: g) ^  X0 `7 g& C7 x            Touchscreen_demo();6 P4 \* q/ d8 n) W- y6 E! q
            break;1 X) R( a( T6 C5 o
          case 3:  d# C4 p+ A& a* y+ y' W, Z4 L
            AudioPlay_demo();
: ^3 @' E  D* H' q! ?& l4 x: z            break;
; E( F9 y! ^, f% j          case 4:4 H: e0 e" e" n( \8 J7 e3 j
            AudioRecord_demo();
9 F9 q. N2 [! p            break;
4 d1 o) J& C9 D8 P( s8 L          case 5:
) H3 A/ a% Y: f" L+ l  M( N, K4 d% V            MotionSensor_demo();
/ l, l, W2 o. [3 f            break;. l( r- D/ p, S0 ^$ ^7 H' r
          case 6:0 N; d1 {% n7 Y" H$ {) ^
            SD_demo();! m, F' S! }6 b' _( k
            break;) x" t7 E8 g- U6 \  j
          case 7:. S8 {' u2 Y3 C/ n7 k
            OSPI_NOR_demo();) ?( X0 o; C/ |- R1 o
        }4 [7 ~( j# O, Z( a% l

* ~3 D0 \  v$ i这是对应的菜单选项:# R# A8 V2 n3 d2 ]9 w, ^5 z
Menu1.png
2 J% x( y. L6 n6 P& K; Q, z: n2 c4 j' ^; Z
这是执行的界面:6 o* v9 M9 V2 F# R7 ]- j
Menu4.jpg
7 R  z; k; H: b: @/ G* P, k6 ?% X; s& K$ B' M  _8 l3 T
这是完整的代码截图:. {/ c" C0 b! l  F9 I- x& r
Menu6.png
1 [; p$ j6 |) C( g3 l- Y8 O! M, S* Y
赞 收藏 评论0 发布时间:2026-7-28 08:54

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版