Fix: fix and improve touch driver for stm32f407-atk-explorer#11136
Fix: fix and improve touch driver for stm32f407-atk-explorer#11136Rbb666 merged 1 commit intoRT-Thread:masterfrom
Conversation
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: bsp_stm32Reviewers: Liang1795 hamburger-os wdfk-prog Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-01-16 15:14 CST)
📝 Review Instructions
|
There was a problem hiding this comment.
Pull request overview
This PR fixes critical touch event handling bugs in the XPT2046 resistive touchscreen driver for the stm32f407-atk-explorer BSP and improves the touch sliding experience for LVGL applications.
Changes:
- Fixed missing touch release event (
LV_INDEV_STATE_REL) that prevented LVGL widgets from responding to clicks - Implemented coordinate smoothing with 5-point moving average filter to reduce resistive touchscreen jitter
- Added complete state machine for touch events (press, move, release) with debounce logic
- Corrected function return type from
rt_ssize_ttort_size_tinxpt2046_touch_readpoint - Added CI configuration files for automated testing of LCD and touch features
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| bsp/stm32/stm32f407-atk-explorer/board/ports/touch/drv_xpt2046_init.c | Complete rewrite of touch event handling with state machine, coordinate filtering, and proper LVGL event states |
| bsp/stm32/stm32f407-atk-explorer/board/ports/touch/drv_touch_xpt.c | Fixed return type of xpt2046_touch_readpoint function and formatting improvements |
| bsp/stm32/stm32f407-atk-explorer/.ci/attachconfig/onboard-lcd.attach | Added CI configuration for LCD feature testing |
| bsp/stm32/stm32f407-atk-explorer/.ci/attachconfig/onboard-lcd-touch.attach | Added CI configuration for touch feature testing |
bsp/stm32/stm32f407-atk-explorer/board/ports/touch/drv_xpt2046_init.c
Outdated
Show resolved
Hide resolved
bsp/stm32/stm32f407-atk-explorer/board/ports/touch/drv_touch_xpt.c
Outdated
Show resolved
Hide resolved
fd077f1 to
e4f7807
Compare
Fix & Improve: fix touch event bug with LVGL Fix touch event bug with LVGL. Improve the touch sliding experience of resistive screens. [ci][stm32f407] add lcd attach config CI check Fix: minor modification Fix format issue. Fix Ci attach file.
|
已修正代码格式与注释问题并修复Ci看护编译错误问题。 |
|
@Rbb666 |
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
修复 stm32f407-atk-explorer BSP 中 TFTLCD 电阻触摸屏驱动无法正确传递 LVGL 触摸释放事件导致无法操作控件的问题,并优化了触摸驱动对 LVGL 中滑动控件的支持。
你的解决方案是什么 (what is your solution)
在XPT2046触摸驱动中添加完整的状态机管理和坐标优化算法:
完整的事件状态机:
LV_INDEV_STATE_PR(按下)和LV_INDEV_STATE_REL(释放)事件滑动体验优化:
参数优化配置:
此方案不修改RT-Thread框架结构,保持向后兼容,仅优化触摸驱动内部算法。
请提供验证的bsp和config (provide the config and bsp)
验证结果:
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up