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

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

[复制链接]
老牛洋车 发布时间:2026-7-28 08:54
官方提供的BSP例程是通过按键轮流执行各个demo模块,操作起来不方便。本实验是通过触摸菜单来随意选择demo模块,操作起来就方便多了。
+ f) Y- |5 A- p& j7 Y' L
8 V& n8 l7 I0 j$ M0 r: f在BSP例程中,获得触摸坐标值是通过触摸中断标志和结构体返回的,对应的代码如下:
5 h- j; @# ~; z
: F" u) M9 D9 ~    if (TouchDetected == SET)           //触摸信号处理
( V- b6 A4 ]3 ?( l1 e7 L; ~6 s    {. K) L+ Y, \5 l: F' k
      TouchDetected = RESET;
8 ^1 j7 J+ f0 t. S
! _* G5 q7 k- ]3 s* B* i, I8 ~      if (BSP_TS_Get_MultiTouchState(0, &TsMultipleState) != BSP_ERROR_NONE)
4 p# {& U. I( ]: Y      {
( A1 D; z. s3 }- r2 q5 k; N        Error_Handler();
' a9 N$ B" v( e& d      }
  E3 e/ |- f! H% B      tou_x = TsMultipleState.TouchX[0];
0 \  E$ u& a+ F+ [8 ~9 w# y& \/ S      tou_y = TsMultipleState.TouchY[0];
' @6 N. \+ ~) Z0 j2 y% x# |. d7 \) ^4 i7 R
获得当次触摸坐标后,就可以通过菜单项显示的位置来确定当前触摸的菜单项,代码如下:! Z* O9 y* B6 w$ e% J8 A' ]
      now_option = (tou_y -50)/24;      //根据触摸位置确定菜单选项
6 m3 ~; k+ U) |+ Q  q  j- U解决了触摸菜单项的选择之后,启用对应的demo就简单了,我是直接用switch语句,直观方便:
8 s' k4 q3 C# w% _- M8 Z: v9 ^: U6 E# O
        switch(now_option){& F) C, L: K& `3 O: U
          case 1:% r- d+ @& m6 ]2 F9 v( m
            Led_demo();
6 v, {& [. Q/ N. E8 _/ X            break;
* C  j, Z  ]" v% g" ]; p: ~- i0 ^          case 2:- K' t6 O. s# l3 P& ]% S' v4 X
            Touchscreen_demo();
0 H; J% V* j! T- e) L            break;/ P& E& K8 a  ~0 d$ B; I/ _
          case 3:
; k4 O7 k; f0 S5 {- m  v6 j            AudioPlay_demo();
, r& I- a, J+ z; l: S* i* z' e& a            break;
1 |; j' @" S7 g3 D* f& E. D! G7 L& ]          case 4:4 _3 _1 J5 j4 Q* y) i# e
            AudioRecord_demo();
, ~/ F3 y7 s( u' M' q            break;! k/ b# k) c! }, P. `; b9 c
          case 5:
9 ~8 A; _6 n" K            MotionSensor_demo();
- h8 d# Y' D6 i! h7 F; Z8 @            break;" e1 a2 Z. e. b( s
          case 6:" S# d+ ]0 C/ `4 q9 `$ N" y
            SD_demo();+ Q& K% ~  b, d( a  D
            break;* U0 T* M9 P" |: Q0 d' }( S" x
          case 7:! [3 C+ O" G1 m* c2 N# E( f* u
            OSPI_NOR_demo();$ @% a. j3 M" c( b% g8 |
        }7 ^2 h4 m+ ~- A* i# l7 `1 r. V
. X4 S/ Q- i2 s5 c( H# e
这是对应的菜单选项:
! S/ Y, `" S& W  Q$ {7 K Menu1.png 4 `7 f/ C: x( }+ e1 L
  F2 A2 M+ }4 j/ b
这是执行的界面:
' y8 C1 b6 Z3 t; x# n& L) e Menu4.jpg 3 ?7 w+ e3 q& _/ L0 ?3 M( T
0 D# Y  z* l7 ^
这是完整的代码截图:
% A" W6 }3 v# v3 y& B- v8 V Menu6.png
! o- x" `* X4 m. f0 S; ]9 {* c: N1 G* A2 O
收藏 评论0 发布时间:2026-7-28 08:54

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版