STM32 触摸屏移植GUI控制控件

news2025/7/29 14:28:01

目录

1、emWin 支持指针输入设备。

2、 模拟触摸屏驱动

3、实现触摸屏的流程 

3.1 实现硬件函数 

 3.2 实现对GUI_TOUCH_Exec()的定期调用

3.3 使用上一步确定的值,在初始化函数LCD_X_Config()当中添加对GUI_TOUCH_Calibrate()的调用 

 4、显示光标

5、触摸屏触摸控件光标控制控件 


1、emWin 支持指针输入设备。

指向输入设备可以是触摸屏、鼠标或者游戏操纵杆

触摸屏驱动一般会简单的调用 GUI_PID_StoreState().这种方式可以支持任何类型的触摸屏。用户负责编写驱动代码(一般来说都很简单)。

2、 模拟触摸屏驱动

模拟触摸屏的工作原理:

触摸屏由两个超薄的玻璃传导层构成,二者之间一般是相互绝缘的。如果用户按下触控面板,那么在该点处连接。

3、实现触摸屏的流程 

 

实现流程:

  1. 实现硬件函数;
  2. 实现对GUI_TOUCH_Exec()的定期调用;
  3. 用示波器验证工作是否正常;
  4. 使用示例来确定校准值;
  5. 使用上一步确定值,在初始化函数LCD_X_Config()中添加对GUI_TOUCH_Calibrate()的调用 

3.1 实现硬件函数 

 

程序:

 

 3.2 实现对GUI_TOUCH_Exec()的定期调用

10ms内调用两次

 

 

中断服务函数编写中断标志位,在主函数循环内调用第二次GUI_TOUCH_Exec函数

3.3 使用上一步确定的值,在初始化函数LCD_X_Config()当中添加对GUI_TOUCH_Calibrate()的调用 

 

 

 4、显示光标

 

 光标显示异常:

修改填充颜色函数:

 

 

 

5、触摸屏触摸控件光标控制控件 

 

 中断服务函数编写中断标志位

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/367880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes入门教程 --- 使用二进制安装

Kubernetes入门教程 --- 使用二进制安装1. Introduction1.1 架构图1.2 关键字介绍1.3 简述2. 使用Kubeadm Install2.1 申请三个虚拟环境2.2 准备安装环境2.3 配置yum源2.4 安装Docker2.4.1 配置docker加速器并修改成k8s驱动2.5 时间同步2.6 安装组件3. 基础知识3.1 Pod3.2 控制…

【一些回忆】2022.02.26-2023.02.26 一个普通男孩蜕变的365天

💃🏼 本人简介:男 👶🏼 年龄:18 🤞 作者:那就叫我亮亮叭 📕 专栏:一些回忆 为什么选择在这个时间节点回忆一下呢? 一是因为今天距离2023高考仅剩1…

双指针法应用总结

一、双指针法(一)概况1.类型:快慢指针(相同方向循环)、对撞指针(相反方向循环)、滑动窗口2.用途:提高效率,通常能将将O(n^2)的时间复杂度,降为O(n)3.可应用的…

selenium基本操作

爬虫与反爬虫之间的斗争爬虫:对某个网站数据或图片感兴趣,开始抓取网站信息;网站:请求次数频繁,并且访问ip固定,user_agent也是python,开始限制访问;爬虫:通过设置user_a…

数据库浅谈之 DuckDB AGG 底层实现

数据库浅谈之 DuckDB AGG 底层实现 HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是数据库浅谈系列,收录在专栏 DATABASE 中 😜😜😜 本系列阿呆将记录一些数据库领域相关的知…

离线维基百科阅读器Kiwix Serve

本文软件是网友 刘源 推荐的,因为他已经安装成功了,所以老苏拖拖拉拉的就从去年拖到了现在; 😂 什么是 Kiwix ? Kiwix 是一个用于浏览离线内容的自由开源浏览器,最初用于离线浏览维基百科。Kiwix 可以读取以压缩形式存…

[神经网络]基干网络之VGG、ShuffleNet

一、VGG VGG是传统神经网络堆叠能达到的极限深度。 VGG分为VGG16和VGG19,其均有以下特点: ①按2x2的Pooling层,网络可以分成若干段 ②每段之内由若干same卷积操作构成,段内Feature Map数量固定不变; ③Feature Map按2的…

对个人博客系统进行web自动化测试(包含测试代码和测试的详细过程)

目录 一、总述 二、登录页面测试 一些准备工作 验证页面显示是否正确 验证正常登录的情况 该过程中出现的问题 验证登录失败的情况 关于登录界面的总代码 测试视频 三、注册界面的自动化测试 测试代码 过程中出现的bug 测试视频 四、博客列表页测试(…

【Leedcode】数据结构中链表必备的面试题(第四期)

【Leedcode】数据结构中链表必备的面试题(第四期) 文章目录【Leedcode】数据结构中链表必备的面试题(第四期)1.题目2.思路图解(1)思路一(2)思路二3.源代码总结1.题目 相交链表: 如下(示例)&…

小白福利!我开发了一个快速部署库

1、开发背景 很多入门的同学,在跟着视频敲完代码之后,在打包出来的产物犯了难 如果是 hash 路由,要么使用后端部署,要么使用 github 或者 gitee 提供的静态部署服务如果是 history 路由,那只能使用后端框架进行部署&a…

内网渗透(五十三)之域控安全和跨域攻击-利用域信任密钥获取目标域控

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

前端学习日记——Vue之Vuex初识(一)

前言 学习前端一段时间了,因为一直是做Python开发,所以凭借着语言的通性学习Javascript、Vue轻快很多,但一些碎片化的知识及插件的使用方法还是需要记录一下,时而复习,形成系统化的知识体系(PS:…

【Linux线程池】

Linux线程池Linux线程池线程池的概念线程池的优点线程池的应用场景线程池的实现Linux线程池 线程池的概念 线程池是一种线程使用模式。 线程过多会带来调度开销,进而影响缓存局部和整体性能,而线程池维护着多个线程,等待着监督管理者分配可并…

JavaScript if…else 语句

条件语句用于基于不同的条件来执行不同的动作。条件语句通常在写代码时,您总是需要为不同的决定来执行不同的动作。您可以在代码中使用条件语句来完成该任务。在 JavaScript 中,我们可使用以下条件语句:if 语句 - 只有当指定条件为 true 时&a…

【企业云端全栈开发实践-3】Spring Boot文件上传服务+拦截器

本节目录一、静态资源访问二、文件上传原理三、拦截器3.1 拦截器定义代码3.2 拦截器注册一、静态资源访问 使用IDEA创建Spring Boot项目时,会默认创建classpath://static/目录,静态资源一般放在这个目录下即可。 如果默认的静态资源过滤策略不能满足开…

做独立开发者,能在AppStore赚到多少钱?

成为一名独立开发者,不用朝九晚五的上班,开发自己感兴趣的产品,在AppStore里赚美金,这可能是很多程序员的梦想,今天就来盘一盘,这个梦想实现的概率有多少。 先来了解一些数据: 2022年5月26日&am…

目标跟踪系列总结

目标跟踪算法: sort算法: sort算法流程图 关联成功的检测box与追踪box处理:使用检测的box对追踪结果进行KalmanFilter权重以及参数更新,同时记录关联追踪box的计数次数; 未关联成功的box处理:对检测的box进行KalmanF…

C++【内存管理】

文章目录C内存管理一、C/C内存分布1.1.C/C内存区域划分图解:1.2.根据代码进行内存区域分析二、C内存管理方式2.1.new/delete操作内置类型2.2.new和delete操作自定义类型三、operator new与operator delete函数四、new和delete的实现原理4.1.内置类型4.2.自定义类型4…

如何利用有限的数据发表更多的SCI论文?——利用ArcGIS探究环境和生态因子对水体、土壤和大气污染物的影响

SCI的写作和发表是科研人提升自身实力和实现自己价值的必要途径。“如何利用有限的数据发表更多的SCI论文?”是我们需要解决的关键问题。软件应用只是过程和手段,理解事件之间的内在逻辑和寻找事物之间的内在规律才是目的。如何利用有限的数据发表更多的…

互联网企业如何进行数字化转型?业务需求迭代频繁的应对之策!

互联网行业作为我国数字经济发展“四化”框架中生产力主要组成部分,是国家数字化转型的主要推动者之一。为此,相对于其他传统行业来说,互联网行业企业数字化转型的紧迫程度更高,如果不数字化转型或者转型不成功,会有更…