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

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

[复制链接]
老牛洋车 发布时间:2026-7-28 08:54
官方提供的BSP例程是通过按键轮流执行各个demo模块,操作起来不方便。本实验是通过触摸菜单来随意选择demo模块,操作起来就方便多了。" c: ~: T9 Z5 I+ ~3 q

* K0 d$ X# `( S& d4 b8 O+ m: n在BSP例程中,获得触摸坐标值是通过触摸中断标志和结构体返回的,对应的代码如下:, K3 X: y8 |! [4 x

: W0 b# ^/ ?( b    if (TouchDetected == SET)           //触摸信号处理# N! a2 F9 Q& d3 P# z+ ~
    {, c" B/ V9 T$ N3 V" K% X' P3 b
      TouchDetected = RESET;
, o# G) w* Z$ L5 ^6 z$ t
- h9 Q; |: i1 _      if (BSP_TS_Get_MultiTouchState(0, &TsMultipleState) != BSP_ERROR_NONE)
* Q. }- A' ^& V: p3 p$ D6 c      {
( Q% |. |8 C( [9 J! _! I- C        Error_Handler();9 B4 P4 S% p3 F4 ~3 N5 |
      }( m% v7 J5 u, M/ G
      tou_x = TsMultipleState.TouchX[0];
$ f, Y' Y6 L0 d' i$ X6 x      tou_y = TsMultipleState.TouchY[0];% Y/ B9 O8 s- K4 e. M( l- s' u
, X9 ]8 o: |; ?+ ~9 N9 e2 g3 _
获得当次触摸坐标后,就可以通过菜单项显示的位置来确定当前触摸的菜单项,代码如下:- U4 K) Y+ @/ Z  v$ W, f; x
      now_option = (tou_y -50)/24;      //根据触摸位置确定菜单选项4 i4 ^! H4 @* ~/ x& F% G+ m
解决了触摸菜单项的选择之后,启用对应的demo就简单了,我是直接用switch语句,直观方便:
* s! |& V6 G6 Q! ?/ r+ f: ^$ A$ e) i' p) ~6 J8 J, t& w! s
        switch(now_option){
, n0 T+ W0 z' L4 J          case 1:' `( I( X3 F% O. J# `
            Led_demo();# U1 C$ D3 `  |
            break;
. C6 a" I; ^+ X2 ^* ~8 |( ]6 E% i6 j          case 2:
1 Q3 g9 B. J! R/ @4 b- K2 q            Touchscreen_demo();3 S7 q7 v* g* r- D5 E
            break;* P8 i" m+ P2 U% {
          case 3:
5 _. l/ ~# P" T7 U" x            AudioPlay_demo();
8 F/ Y+ D! g3 b3 {            break;
/ |, P2 q6 u# N0 p8 t9 A7 N7 a0 r          case 4:1 S( J0 J7 f, P& A) d( v# A
            AudioRecord_demo();
% J! }5 e; @& X3 U  g$ Q. U) h            break;. c  O  x, |* s) t/ Z$ ]
          case 5:( p6 J: P+ i! B6 j5 D! J
            MotionSensor_demo();4 l& r7 [) n8 a$ \8 c8 S/ ~
            break;& ^" f$ ?6 k( Y; [2 v/ t& m  o
          case 6:
& j0 a  j' J, R( p8 i            SD_demo();
" A8 ^, `4 N3 Q            break;
+ A% u1 ?2 J- l  g          case 7:
2 r- T: I' _4 y! q/ Y& N            OSPI_NOR_demo();
: |) x0 h6 X5 S& K8 v6 O: |* T        }
) d6 I5 ?2 J! l$ _6 q$ u" m) i9 q5 I( ~5 {  q" E
这是对应的菜单选项:0 S2 u! \) z, |' m! |8 G3 `
Menu1.png . `; ^' x% j! ?; @- a
# b! h8 T8 e( M* P0 w: l+ ?
这是执行的界面:4 {0 ?- E" G7 O+ M8 f5 ^' O
Menu4.jpg 2 ?* j3 i" U; @* T, y
; G6 M9 Y: k) w, Q
这是完整的代码截图:" z# h% [6 ]7 v
Menu6.png * X( H/ V: y5 N9 f, U2 p

% q* ?' v  E$ c9 D, u3 A
收藏 评论0 发布时间:2026-7-28 08:54

举报

0个回答

所属标签

相似技术帖

官网相关资源

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