|
官方提供的BSP例程是通过按键轮流执行各个demo模块,操作起来不方便。本实验是通过触摸菜单来随意选择demo模块,操作起来就方便多了。& B6 F% q- x5 c; h! _ 在BSP例程中,获得触摸坐标值是通过触摸中断标志和结构体返回的,对应的代码如下:6 \1 T# M& P: o5 L / ]# S" f* d* j5 p4 o if (TouchDetected == SET) //触摸信号处理 { TouchDetected = RESET; if (BSP_TS_Get_MultiTouchState(0, &TsMultipleState) != BSP_ERROR_NONE) @/ O0 o- g% k$ b1 w {7 b) n* p$ n+ ^' k* P' w$ D Error_Handler();) u; u% f1 r) t7 R } tou_x = TsMultipleState.TouchX[0];/ u8 h d: m" ]- S tou_y = TsMultipleState.TouchY[0]; 4 M: l* s! g) X5 {2 g" F- z 获得当次触摸坐标后,就可以通过菜单项显示的位置来确定当前触摸的菜单项,代码如下:$ B& g* g S4 U& w: P t now_option = (tou_y -50)/24; //根据触摸位置确定菜单选项8 u4 W* l0 a2 e 解决了触摸菜单项的选择之后,启用对应的demo就简单了,我是直接用switch语句,直观方便:1 K" P/ M3 w5 g" b 2 S# k; b8 _7 t2 g% [ switch(now_option){ case 1: Led_demo();9 Y- u! {1 I, a* P3 u break;/ G1 a7 D5 Y( c- j6 r2 \ case 2:+ a X$ R1 b0 y i4 u( d Touchscreen_demo();6 t6 X8 [2 [- W1 } break;8 \+ l8 D$ E& P' W, T; O case 3:1 [: t$ h |+ a$ g2 x AudioPlay_demo();6 X) g+ [8 k% G$ E8 e, _$ A break;0 E3 P9 J6 p: ] case 4:" C9 L6 ~ U$ t* b8 X AudioRecord_demo(); break;6 [2 J: Y4 S% E case 5: MotionSensor_demo();0 T7 a" o+ l* t# V break; case 6:# @0 ]4 d( V9 U5 F4 F% e u SD_demo(); break;6 P; V- A# [6 h# G! g- y case 7: OSPI_NOR_demo(); } 这是对应的菜单选项:
* X* j/ v9 O2 w' c0 `% z0 L6 L 这是执行的界面:0 t8 ^9 O( z u7 ?( V
这是完整的代码截图:
|
《STM32CubeMX2 实战课程》学习笔记——STM32C562RE开发测试
STM32C542RC开发板的串口DMA发送及接收实验
终于完成了STM32C542RC开发板的串口发送实验
【新品测评】STM32WL3R芯片测评,从点亮第一个LED到subGhz启动
STM32C542RC开发板的按键控制LED闪烁实验
《STM32CubeMX2 实战课程》学习笔记--课程1:STM32CubeMX2安装
STM32L562DK探索板——串口通讯测试成功
STM32L562DK探索板——再试串口通讯仍不成
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
M24LR-discovery测试小结
微信公众号
手机版