-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Fix: fix and improve touch driver for stm32f407-atk-explorer #11136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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看护编译错误问题。 |
拉取/合并请求描述:(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