admin 管理员组文章数量: 887021
HLK
HLK-W801-LVGL8之触摸驱动
- 前言
- 触摸驱动实现
- 驱动芯片SPI接口
- XPT2046驱动接口
- 显示截图
前言
本篇完成最后一部的触摸驱动移植
前面两部分:
第一部分:HLK-W801-LVGL8之源码移植
第二部分:HLK-W801-LVGL8之LCD驱动
触摸驱动实现
针对触摸驱动,在源码demo中也有关于驱动芯片的实现,这里直接使用XPT2046的相关源代码;
结合驱动XPT2046.c/h的实现,具体只需完成 xpt2046_init()和xpt2046_read()两个接口的编写调试工作,平台驱动主要为SPI驱动,完成lv_drv_conf.h中输入设备的驱动接口:
#define LV_DRV_INDEV_IRQ_READ // 读取触摸笔中断信号电平
#define LV_DRV_INDEV_SPI_CS(val) // 使能SPI slave
#define LV_DRV_INDEV_SPI_XCHG_BYTE(val) // SPI总线数据读写
驱动芯片SPI接口
- 首先是平台SPI驱动的初始化,需要配置SPI接口(速率,时钟极性/相位,CS使能)
查询XPT2046了解到其数据接口的时序图:
- 通过DCLK与数据IO的示意图,可以确定CPOL=0(空闲状态为低电平)CPHA=0(第一个边沿数据采样有效);
- tACQ最小值为1.5us,这里设置SPI时钟为1MHz
- 结合WM 801的SDK提供的host spi接口,可以直接利用,很方便就完成关于触摸屏spi接口的初始化及数据访问接口
- 完成 lv_drv_conf.h中输入设备的驱动接口;由于SDK自带的SPI驱动中已包含CS的自动控制,这里的片选的手动控制就不需要实现了;
XPT2046驱动接口
- 根据原来XPT2046的驱动实现,根据驱动配置要求和读写数据实现,初始化时先第一次读取XY值,之后PEN输出使能;
- 读坐标操作为定时轮询,默认为30ms执行读取坐标操作;SPI驱动支持读取坐标直接获取16bits数据,对原来驱动做了这点修改
- 此外,测试调试中发现XY位置相反,需修改lv_drv_conf.h中的驱动配置;
#define XPT2046_XY_SWAP 1
- 最后在gui任务中调用lv_touchpad_init()与lv_port_indev_init()就完成了触摸驱动的初始化,到已经全部完成关于显示和触摸驱动就完成了移植工作
显示截图
本文标签: HLK
版权声明:本文标题:HLK 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687222512h78021.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论