stm32裸机上移植ucgui触摸屏的过程详述如下:
1、将正点原子的《触摸屏移植实验》中hardwrae/touch目录复制到已经建立好的ucgui工程目录的hardware文件夹下,并添加touch.c文件和头文件路径。
2、打开ucgui工程中的guiconf.h文件,将其中的gui_support_touch和gui_winsupport总开关打开。如下所示:
1#define gui_support_touch 1 /* support a touch screen (req. win-manager) */2#define gui_winsupport 1 /* window manager package available */
此时编译程序,会出现四个函数未定义的错误。
3、在gui_x中添加文件gui_x_touch.c,此时编译工程错误消失。
4、在gui_x_touch.c中添加预处理命令#include “touch.h”。然后将其中的gui_touch_x_measurex和gui_touch_x_measurey两个函数改为如下所示的形式:
01intgui_touch_x_measurex(void) {02u16 x,y;03read_ads2(&x,&y);04returnx;05}06
07intgui_touch_x_measurey(void) {08u16 x,y;09read_ads2(&x,&y);10returny;11}
5、由于是在裸机上运行ucgui程序,对话框程序会阻塞当前进程的执行。所以需要在定时器中断中不断的去扫描触摸屏的状态。设置定时器10ms中断一次,在定时器中断处理函数中加入gui_touch_exec()语句。
6、在主函数中加入初始化定时器和触摸屏,并在gui_init()函数之后加入gui_cursor_show函数以显示指针。
7、以上就完成了触摸屏的移植操作,下面对触摸屏的工作状态进行配置。由于我的显示屏是横屏显示,所以我的将guitouchconf.h文件配置成如下形式:
1#define gui_touch_ad_left 2312#define gui_touch_ad_right 18343#define gui_touch_ad_top 3384#define gui_touch_ad_bottom 17645
6#define gui_touch_swap_xy 17#define gui_touch_mirror_x 08#define gui_touch_mirror_y 0
对于使用正点原子stm32 mini开发板的同学可以试试上面的参数。如果gui_touch_ad_xxxx这四个参数很重要,配置不合适会出现指针停留在左上角不动,指针跟触摸的位置不同等问题。下面三个参数设置不合适会出现指针移动的方向跟触摸的方向不一致的问题。
上面四个参数的设置需要读取触摸屏的左上角和右下角的ad采样值来确定。
8、触摸屏的使用需要窗口等回调函数的支持,应首先移植好一个窗口程序之后再将触摸屏移植上去进行验证。
微软宣布推出新的BizSpark Plus,这是BizSpark计划的扩展
中国电信携手华为等合作伙伴成功实现了5G+8K全球首航
卓岚信息科技低功耗10M模块ZLSN2000概述
iphone7Plus人像相机模式探秘:通过软件制作背景虚化效果
2020年上半年全国光伏发电量同比增长20%,未来市场需求强劲
STM32裸机上移植ucGUI触摸屏的步骤及方法解析
双极性晶体管(三极管)的应用举例
一个基于运算跨导放大器DC伺服环路应用设计
NP6P02DR 20V p通道增强模式MOSFET
富士康与夏普合资在广州投资610亿建10.5代8K显示器产业园
非接触式激光超声图像公布 将极大地扩大临床环境中医生的使用范围
中国比克宣布履行动力电池供货合同
小米MIX Alpha 2代或将采用新刘海相机方案
气动调节阀泄露该怎么办,用什么方法进行处理
LT3753 9V-15V输入至54V/3A隔离式正激式转换器
锡膏助焊膏和松香分别起到什么作用?
小家电“爆单”,预测在2023年市场规模达到6460亿元
LTE-A将成主流,测试厂商未雨绸缪大展拳脚
如何通过简单的步骤从Premiere Pro中导出AVI视频文件
机器人的五感认知技术研究分析