调试触摸屏使用i2c transfer无法进行读写,返回值是-11,求大神指点

Aaron&Lee 2017-06-29 05:05:35
msgs[0].flags = !I2C_M_RD;
msgs[0].addr = client->addr;
msgs[0].len = GTP_ADDR_LENGTH;
msgs[0].buf = &buf[0];
msgs[0].scl_rate = 300 * 1000; // for Rockchip, etc.

msgs[1].flags = I2C_M_RD;
msgs[1].addr = client->addr;
msgs[1].len = len - GTP_ADDR_LENGTH;
msgs[1].buf = &buf[GTP_ADDR_LENGTH];
msgs[1].scl_rate = 300 * 1000;

while(retries < 5)
{
ret = i2c_transfer(client->adapter, msgs, 2);
if(ret == 2)break;
retries++;
}


返回值ret=-11,求大神指点
...全文
15403 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
glen30 2020-10-26
  • 打赏
  • 举报
回复
可以先在uboot下用i2c命令测试一下该设备,或者在linux启动后用i2c tool测试一下该设备,比如i2cdetect看能否检查到设备,如果设备都检测不到那硬件问题的可能性大一点,如果能检测到看看能不能用i2c tool读设备
YY2065 2020-10-14
  • 打赏
  • 举报
回复
楼主,这个问题解决了吗?怎么解决的?
YY2065 2020-10-14
  • 打赏
  • 举报
回复
博主,请问你的问题怎么解决的?
jklinux 2017-06-30
  • 打赏
  • 举报
回复
这个返回的错误码是重试的意思,可能是控制器收不到设备回的应答信号。 确定下硬件连接有没有问题,接着的控制器有没有搞错了。 还有看样子你的i2c控制器还可以根据要发出的每条消息调整时钟频率的, 什么方案来的?

1,319

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧