OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5042|回复: 2

触摸屏驱动ft5x06.c中触摸点读取问题

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-6-25
在线时间
4 小时
发表于 2020-11-5 05:50:17 | 显示全部楼层 |阅读模式
1金钱
static int ft5x06_read_regs(struct ft5x06_dev *dev, u8 reg, void *val, int len)
{
        int ret;
        struct i2c_msg msg[2];
        struct i2c_client *client = (struct i2c_client *)dev->client;

        /* msg[0]为发送要读取的首地址 */
        msg[0].addr = client->addr;                        /* ft5x06地址 */
        msg[0].flags = 0;                                        /* 标记为发送数据 */
        msg[0].buf = ®                                        /* 读取的首地址 */
        msg[0].len = 1;                                                /* reg长度*/

        /* msg[1]读取数据 */
        msg[1].addr = client->addr;                        /* ft5x06地址 */
        msg[1].flags = I2C_M_RD;                        /* 标记为读取数据*/
        msg[1].buf = val;                                        /* 读取数据缓冲区 */
        msg[1].len = len;                                        /* 要读取的数据长度*/

        ret = i2c_transfer(client->adapter, msg, 2);
        if(ret == 2) {
                ret = 0;
        } else {
                ret = -EREMOTEIO;
        }
        return ret;
}
在中断处理函数中直接调用ft5x06_read_regs,但传入的参数只是0x02,然后就直接读取到29个寄存器值了?只发0x02从机会返回触摸点数据?而且为什么5个触摸点要读取29个寄存器的值?不应该读取0x02(触摸点数据)+5*6=31个寄存器吗?另外如果在问个问题,如果i2c传输出错,在驱动中识别到错误哪如何进行处理?比如传输5个触摸点数据,前两个成功,第三个失败,是应该丢弃所有的数据还是屏蔽这个错误继续读取然后对成功的数据进行input?希望有人能够解答下我的困惑,谢谢!
ret = ft5x06_read_regs(multidata, FT5X06_TD_STATUS_REG, rdbuf, FT5X06_READLEN);

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-6-25
在线时间
4 小时
 楼主| 发表于 2020-11-5 11:49:42 | 显示全部楼层
回复

使用道具 举报

2

主题

712

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2178
金钱
2178
注册时间
2018-8-27
在线时间
258 小时
发表于 2020-11-5 12:01:56 | 显示全部楼层
为啥是29个,你自己看下文档咯,触摸点的数据并不是所有数据都是驱动程序中需要用到的;至于出错如何处理,那是驱动开发者需要考虑的事,没有统一的处理方法,根据不同的设备做不同的处理
森罗万象
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 18:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表