文章目录

  • 1.添加触摸IC驱动
  • 2.使能EMWIN触摸 GUIConf.h
  • 3.添加EMWIN GUI_X_Touch_Analog.c文件
  • 4.定时调用GUI_TOUCH_Exec
    • 5 GT911移植分辨率更改注意事项:

1.添加触摸IC驱动

2.使能EMWIN触摸 GUIConf.h

GUI_SUPPORT_TOUCH 1

3.添加EMWIN GUI_X_Touch_Analog.c文件

实现GUI_TOUCH_X_MeasureX
GUI_TOUCH_X_MeasureY
两个函数

int  GUI_TOUCH_X_MeasureY(void)
{   int32_t yvalue;//电容屏的触摸值获取yvalue = g_GT911.Y0;return yvalue;}int  GUI_TOUCH_X_MeasureX(void)
{int32_t xvalue;//电容屏的触摸值获取xvalue=g_GT911.X0;return xvalue;}

直接将触摸IC驱动读取的坐标值传递进来即可,
需要注意的是当触摸没有按下时一定要将x,y的值指向一个屏幕外的值,如0xFFFF,这样EMWIN才能发送松开消息,否则会一直聚焦在某个控件,导致响应不正常

4.定时调用GUI_TOUCH_Exec

5 GT911移植分辨率更改注意事项:

正常切换分辨率是直接买对应的分辨率的成品
但有时候发过来的不一定是想要的分辨率
就要从软件上切换
1024600 <> 800480
如果触摸配置分辨率和屏幕分辨率相同,直接用驱动 配置啥都不用改
主要注意点就是
1.配置版本号
程序写入的版本号,必须大于等于GT9xx本地保存的版本号,才可以更新配置,否则当前写入配置无效。
datasheet中写的发送0x00 会将版本号初始化为’A’ 即0x41
实际需要将配置表第一个值改为0x00,
并将全部185个寄存器值即整个配置表写进去才能复位版本号

2 把寄存器配置数组写入(0x8047-0x8100),一共186个寄存器

0X80FF寄存器用于存储校验和,使得0X8047-0X80FF之间所有数据之和为0,如果校验不通过,当前配置无效。
校验和计算方式

 uint8_t ucConfigChecksum = 0;//计算校验和,0x8047 到 0x80FE 之字节和的补码for ( uint16_t i = 0; i < ( sizeof( s_GT911_CfgParams ) - 2 ); i++ )   //前184个{ucConfigChecksum += s_GT911_CfgParams[i];}s_GT911_CfgParams[184] = ( ~ucConfigChecksum ) + 1;

完整切换函数 需要通过切换 NOMAL 宏定义来完成

void GT911_Init( void )
{uint8_t ucConfigChecksum = 0, i;uint8_t ucIDBuf[5] = {0};//  uint8_t ucCFG[186] = {0};TS_IIC_Init();    //IIC接口初始化//emWin默认是发给图层1,如果是发给图层2,修改Layer参数为1//    State.Layer = 0;GT911_Reset_Sequence( GT911_IIC_ADDR ); //复位GT911,设定设备地址为0xBA/0xBB/* 调试代码 */id = GT911_ReadID(); ver = GT911_ReadVersion();cfg = GT911_ReadCFGVersion();if(id == 0x313139){g_GT911.Enable = 1;}
#if NOAML  //正常执行 需要保证想要的配置版本要比本地保存的版本高 否则按照后   //面的方式执行if(cfg < s_GT911_CfgParams[0])   {// s_GT911_CfgParams[0] = 0x00; //写一次 重置uint8_t ucConfigChecksum = 0;//计算校验和,0x8047 到 0x80FE 之字节和的补码for ( uint16_t i = 0; i < ( sizeof( s_GT911_CfgParams ) - 2 ); i++ )   //前184个{ucConfigChecksum += s_GT911_CfgParams[i];}s_GT911_CfgParams[184] = ( ~ucConfigChecksum ) + 1;GT911_WriteReg(GT911_CONFIG_REG, (uint8_t *)s_GT911_CfgParams, sizeof(s_GT911_CfgParams));}#else //版本混乱后  读出版本号不是想要的版本//将第一个字节写为0  整个写一遍 重置版本号后 再执行上面正常执行步骤if(cfg != 0x53){s_GT911_CfgParams[0] = 0x00; //写一次 重置uint8_t ucConfigChecksum = 0;//计算校验和,0x8047 到 0x80FE 之字节和的补码for ( uint16_t i = 0; i < ( sizeof( s_GT911_CfgParams       ) - 2 ); i++ )   //前184个{ucConfigChecksum += s_GT911_CfgParams[i];}s_GT911_CfgParams[184] = ( ~ucConfigChecksum ) + 1;GT911_WriteReg(GT911_CONFIG_REG, (uint8_t *)s_GT911_CfgParams, sizeof(s_GT911_CfgParams));}#endif}

EMWIN电容触摸Touch步骤及注意事项相关推荐

  1. 使用MCU普通I/O口实现电容触摸感应方案(RC方式)

    技术背景 现在电子产品中,触摸感应技术日益受到更多关注和应用,不仅美观耐 用,而且较传统机械按键具有更大的灵敏度.稳定性.可靠性,同时可以大幅提高产品的品质.触摸感应解决方案受到越来越多的IC设计厂家 ...

  2. 笔记本拆装步骤及注意事项

    笔记本拆装步骤及注意事项 一.首先清理桌面 保持桌面的干净整洁,以免和其它笔记本配件混淆和刮花笔记本机壳. 二.笔记本按机壳可分四大部分: ①A壳:笔记本未打开的时候,最上面的那面. ②B壳:笔记本打 ...

  3. 最简单DIY基于STM32的远程控制电脑系统①(电容触摸+按键控制)

    STM32库函数开发系列文章目录 第一篇:STM32F103ZET6单片机双串口互发程序设计与实现 第二篇:最简单DIY基于STM32单片机的蓝牙智能小车设计方案 第三篇:最简单DIY基于STM32F ...

  4. 电容触摸测试MCU的灵活性

    电容触摸技术广泛应用于从智能手机到冰箱和汽车的电子产品中.在许多应用中,电容式触摸传感器向专用控制器芯片提供输入.MCU直接参与当控制器集成为一个外围单片机上死去. 无论MCU是否具有集成在芯片上的传 ...

  5. ESP32 开发笔记(三)源码示例 6_TouchPad_Interrupt 电容触摸中断实现触摸按钮

    开发板购买链接 https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb2Ij1As&ft=t&id=62636 ...

  6. 发那科机器人电柜没电怎么回事_「维修篇」发那科FANUC机器人电路板维修步骤及注意事项...

    机器人维修要说比较复杂是的什么,小编相信很多维修人员映入脑海的第一个几乎都是电路板了,电路板因其结构的特殊性,非常复杂也非常精细,在维修过程中通常需要借助专业维修工具才能进行维修.一些非专业维修人员可 ...

  7. 全志A33之添加电容触摸GT911驱动

    全志A33之添加电容触摸GT911驱动 基于锐尔威视的A33开发板及提供的开发包,仅供参考. 开发板说是支持GT911,其实是不支持的,得修改驱动及配置,启动文件. 一.      修改配置文件 /h ...

  8. revit建筑样板_Revit出建筑施工图步骤及注意事项

    大家知道一套完整的建筑施工图有图纸目录,建筑设计说明,工程做法表,平面图,立面图,剖面图及详图等组成,不同的图纸在Revit里出图的方式是不一样的. Revit里是可以直接出施工图的,而且不亚于CAD ...

  9. WT32-SC01是ESP32驱动3.5彩屏开发板方案适合用arduino方式开发吗?因为需要彩屏和电容触摸的驱动的

    ESP32驱动3.5寸彩屏开发板方案因为带有彩屏和电容触摸的驱动,能否用arduino方式开发,这是很多熟悉arduino开发的技术人员关心的问题. 目前启明云端推出的http://esp32.8ms ...

最新文章

  1. (一)Android Studio 安装部署 华丽躲坑
  2. 趁ofo退出美市场 Uber不计成本发展共享单车
  3. NYOJ 598 旋转圆柱矩阵
  4. Linq to Entity中连接两个数据库时要注意的问题
  5. Android上传图片的两种方式
  6. 编码基本功:给刚刚学习编程的朋友的建议
  7. LPC1788系统时钟的设置
  8. win10计算机管理中没有本地用户和组怎么办
  9. 澳拳击袋鼠体型巨大 身高超2米体重近200斤
  10. FFmpeg简单使用:视频编码 ---- YUV转H264
  11. 第十一天 乐在其中-Android与远端之JDBC
  12. BusyBox 的配置
  13. 【自动控制原理】 根轨迹法之根轨迹法分析系统性能
  14. Ubuntu中使用vi编辑时方向键乱码或退格键不能使用解决方法
  15. 什么是 NFT Gala Games? 元宇宙 Town Star 新手村攻略教程
  16. Facebook投手的多账号管理软件-VMLogin中文版防关联浏览器-安全高效管理每个Facebook帐号
  17. 【​观察】得生态者得云天下 阿里、腾讯、浪潮、华为对决云计算2.0
  18. 自然图像抠图/视频抠像技术发展情况梳理
  19. ecshop文件结构详解
  20. 10条Linux命令锦囊,防你牢底坐穿

热门文章

  1. GaussDB常用命令
  2. win7系统提示未识别网络无Internet访问,169.254.x.x
  3. 搜索引擎(大数据检索)论述[elasticsearch原理相关]
  4. 秒杀限制人群,如何设计秒杀服务的限流策略?
  5. SQL数据库质疑怎么解决呢?
  6. 计算机科学与技术以为舟,于哲舟-吉林大学计算机科学与技术学院
  7. GitHub新手用法详解【适合新手入门-建议收藏!!!】
  8. 微信公众平台开发(六) 翻译功能开发
  9. 在没有安装VC软件的电脑上也可以执行的exe文件
  10. caj打印PDF提示打印超范围应该怎么办?