|
官方提供的BSP例程是通过按键轮流执行各个demo模块,操作起来不方便。本实验是通过触摸菜单来随意选择demo模块,操作起来就方便多了。" c: ~: T9 Z5 I+ ~3 q 在BSP例程中,获得触摸坐标值是通过触摸中断标志和结构体返回的,对应的代码如下:, K3 X: y8 |! [4 x if (TouchDetected == SET) //触摸信号处理# N! a2 F9 Q& d3 P# z+ ~ {, c" B/ V9 T$ N3 V" K% X' P3 b TouchDetected = RESET; if (BSP_TS_Get_MultiTouchState(0, &TsMultipleState) != BSP_ERROR_NONE) { Error_Handler();9 B4 P4 S% p3 F4 ~3 N5 | }( m% v7 J5 u, M/ G tou_x = TsMultipleState.TouchX[0]; 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语句,直观方便: ) i' p) ~6 J8 J, t& w! s switch(now_option){ case 1:' `( I( X3 F% O. J# ` Led_demo();# U1 C$ D3 ` | break; case 2: Touchscreen_demo();3 S7 q7 v* g* r- D5 E break;* P8 i" m+ P2 U% { case 3: AudioPlay_demo(); break; case 4:1 S( J0 J7 f, P& A) d( v# A AudioRecord_demo(); 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: SD_demo(); break; case 7: OSPI_NOR_demo(); } 6 q$ u" m) i9 q5 I( ~5 { q" E 这是对应的菜单选项:0 S2 u! \) z, |' m! |8 G3 `
# b! h8 T8 e( M* P0 w: l+ ? 这是执行的界面:4 {0 ?- E" G7 O+ M8 f5 ^' O
; G6 M9 Y: k) w, Q 这是完整的代码截图:" z# h% [6 ]7 v
|
STM32L562DK探索板——串口通讯测试成功
STM32L562DK探索板——再试串口通讯仍不成
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
M24LR-discovery测试小结
STM32L562DK探索板——串口通讯的再测试
STM32L562DK探索板——串口通讯的测试
STM32L562DK探索板——运动传感器测试
STM32L562DK探索板——继续深入了解Audio Play的工作流程
STM32L562DK探索板——触摸菜单实验之触摸测试
STM32L562DK探索板——触摸菜单实验之LED闪烁
微信公众号
手机版