android 怎么添加tp触摸
答案:1 悬赏:30
解决时间 2021-03-09 13:24
- 提问者网友:绫月
- 2021-03-09 05:58
android 怎么添加tp触摸
最佳答案
- 二级知识专家网友:往事隔山水
- 2021-03-09 06:43
TP驱动实现
1 修改ProjectConfig.mk
修改mediatek\config\prj\ProjectConfig.mk下的CUSTOM_KERNEL_TOUCHPANEL
其值由GT818B改为msg2133
2 增加ms2133驱动文件夹
根据TP厂家提供的驱动,我们在\mediatek\custom\common\kernel\touchpanel增加msg2133触摸屏驱动文件夹msg2133,并做下面一些简单修改正常使用。
(1)Msg2133接口的初始化
1) CHIP_EN片选使能引脚
mt_set_gpio_mode(GPIO_CTP_MSG2133_EN_PIN,GPIO_CTP_MSG2133_EN_PIN_M_GPIO);
mt_set_gpio_dir(GPIO_CTP_MSG2133_EN_PIN,GPIO_DIR_OUT);
mt_set_gpio_out(GPIO_CTP_MSG2133_EN_PIN,GPIO_OUT_ONE);
msg2133芯片使能引脚配置为GPIO模式、输出高电平使能。
2) INT中断引脚
mt_set_gpio_mode(GPIO_CTP_MSG2133_EINT_PIN,GPIO_CTP_MSG2133_EINT_PIN_M_EINT);
mt_set_gpio_dir(GPIO_CTP_MSG2133_EINT_PIN,GPIO_DIR_IN);
mt_set_gpio_pull_enable(GPIO_CTP_MSG2133_EINT_PIN,GPIO_PULL_ENABLE);
mt_set_gpio_pull_select(GPIO_CTP_MSG2133_EINT_PIN,GPIO_PULL_UP);
配置为中断模式、输入、使能上下拉功能和设置为上拉。
(2)IIC地址
Msg2133的iic读写地址,我从数据手册上没有找到是如何确定这两个地址的,驱动厂家在驱动代码中提供,如果想要具体是怎么确定的,可咨询厂家。
#defineFW_ADDR_MSG21XX (0xC4>>1)
#defineFW_ADDR_MSG21XX_TP(0x4C>>1)//write,0x26
#defineFW_UPDATE_ADDR_MSG21XX(0x92>>1)//read,0x49
(3)增加TP的虚拟按键(virtual key)
要在TP上增加虚拟按键,需要在tp对应的头文件添加下面的设置:
1) 定义TPD_HAVE_BUTTON
2) 定义TPD_BUTTON_HEIGHT、TPD_KEY_COUNT、TPD_KEYS和TPD_KEYS_DIM,分别用于定义button被识别的纵向坐标、虚拟按键个数、对应的功能键和每个功能键的坐标
#defineTPD_HAVE_BUTTON
#defineTPD_BUTTON_HEIGHT800
#defineTPD_KEY_COUNT 4
#defineTPD_KEYS{ KEY_BACK, KEY_SEARCH,KEY_MENU, KEY_HOMEPAGE }
#define TPD_KEYS_DIM{{200,900,10,10},{260,900,10,10},{40,900,10,10},{120,900,10,10}}
其中,{200,900,10,10}对应了KEY_BACK的坐标, (200,900)是该key center的坐标,10是该键的宽度,10是该键的高度。
3) 根据显示屏分辨率修改相关的宏定义
#defineTPD_RES_X480// (320)
#defineTPD_RES_Y800//(480)
把常用的实体按键(导航按键)映射到触屏区域的快捷方式,不强制要求一定要有物理按键来支持用户操作,这对开发全触摸屏的产品非常有利。
1 修改ProjectConfig.mk
修改mediatek\config\prj\ProjectConfig.mk下的CUSTOM_KERNEL_TOUCHPANEL
其值由GT818B改为msg2133
2 增加ms2133驱动文件夹
根据TP厂家提供的驱动,我们在\mediatek\custom\common\kernel\touchpanel增加msg2133触摸屏驱动文件夹msg2133,并做下面一些简单修改正常使用。
(1)Msg2133接口的初始化
1) CHIP_EN片选使能引脚
mt_set_gpio_mode(GPIO_CTP_MSG2133_EN_PIN,GPIO_CTP_MSG2133_EN_PIN_M_GPIO);
mt_set_gpio_dir(GPIO_CTP_MSG2133_EN_PIN,GPIO_DIR_OUT);
mt_set_gpio_out(GPIO_CTP_MSG2133_EN_PIN,GPIO_OUT_ONE);
msg2133芯片使能引脚配置为GPIO模式、输出高电平使能。
2) INT中断引脚
mt_set_gpio_mode(GPIO_CTP_MSG2133_EINT_PIN,GPIO_CTP_MSG2133_EINT_PIN_M_EINT);
mt_set_gpio_dir(GPIO_CTP_MSG2133_EINT_PIN,GPIO_DIR_IN);
mt_set_gpio_pull_enable(GPIO_CTP_MSG2133_EINT_PIN,GPIO_PULL_ENABLE);
mt_set_gpio_pull_select(GPIO_CTP_MSG2133_EINT_PIN,GPIO_PULL_UP);
配置为中断模式、输入、使能上下拉功能和设置为上拉。
(2)IIC地址
Msg2133的iic读写地址,我从数据手册上没有找到是如何确定这两个地址的,驱动厂家在驱动代码中提供,如果想要具体是怎么确定的,可咨询厂家。
#defineFW_ADDR_MSG21XX (0xC4>>1)
#defineFW_ADDR_MSG21XX_TP(0x4C>>1)//write,0x26
#defineFW_UPDATE_ADDR_MSG21XX(0x92>>1)//read,0x49
(3)增加TP的虚拟按键(virtual key)
要在TP上增加虚拟按键,需要在tp对应的头文件添加下面的设置:
1) 定义TPD_HAVE_BUTTON
2) 定义TPD_BUTTON_HEIGHT、TPD_KEY_COUNT、TPD_KEYS和TPD_KEYS_DIM,分别用于定义button被识别的纵向坐标、虚拟按键个数、对应的功能键和每个功能键的坐标
#defineTPD_HAVE_BUTTON
#defineTPD_BUTTON_HEIGHT800
#defineTPD_KEY_COUNT 4
#defineTPD_KEYS{ KEY_BACK, KEY_SEARCH,KEY_MENU, KEY_HOMEPAGE }
#define TPD_KEYS_DIM{{200,900,10,10},{260,900,10,10},{40,900,10,10},{120,900,10,10}}
其中,{200,900,10,10}对应了KEY_BACK的坐标, (200,900)是该key center的坐标,10是该键的宽度,10是该键的高度。
3) 根据显示屏分辨率修改相关的宏定义
#defineTPD_RES_X480// (320)
#defineTPD_RES_Y800//(480)
把常用的实体按键(导航按键)映射到触屏区域的快捷方式,不强制要求一定要有物理按键来支持用户操作,这对开发全触摸屏的产品非常有利。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯