全志科技
登录
直播中
王艳
7年用户
1232经验值
私信
关注
[问答]
讲述一些常见的I2C通信正常报错现象及其解决办法
开启该帖子的消息推送
I2C
通信
触摸屏
当在dts中配置了一些i2c设备,并且在kernel_menuconfig中也选上对应的驱动,但是实际硬件中并没有连接真实的硬件,这就会导致在系统启动时,会有不少的I2C报错打印出来。
这里以一款触摸屏为例:
系统启动时触摸屏驱动会多次地使用I2C向触摸屏模块进行
通信
,但是由于实际硬件没有连接触摸屏,通信是一定会失败的,因此就会打印一大堆通信失败的字眼。这些其实都是正常的,并不会影响到系统正常加载。
常见的I2C通信正常报错有哪些呢?怎样去解决?
回帖
(2)
宁兴琴
2021-12-29 10:00:46
解决办法:
如果不想要看到这么多错误的打印的话,可以尝试以下几种办法:
(1)可以修改系统启动时的打印等级,通过命令“cconfigs”跳转到方案的配置目录,然后找到文件env*.cfg(这里*指的是内核版本,若是4.9内核,则配置文件名为env-4.9.cfg,在4.9以前版本的内核中都是这样命名的。只有在5.4内核中,是直接命名为env.cfg)。然后修改参数loglevel,将其值改为0,那么就可以减少很多内核打印了。
(2)在触摸屏代码中,在probe函数中初始化一些资源后,尽快地调用I2C去读取触摸屏的一些ID号或者是版本号,若读取失败后,就立即退出驱动加载。没必要继续进行其他设置相关的I2C通信。
2、使用i2c-detect工具检索某个I2C总线哪些地址存在设备时,出现很多错误通信的log信息,可能会令人误以为该I2C总线是有问题的。如下图所示:
上图命令i2cdetect -y 2的作用是:检索I2C2总线上所有的I2C设备。这里的打印其实都是正常的,检索是通过cpu主动向全部I2C地址读写数据来检测的。可能硬件上一根I2C总线就连接了一个I2C设备,只会占用一个I2C设备地址,那么其他地址都是为空的。自然而然地,与这些空的设备地址通信肯定是失败的,因此也一定会有错误的打印打出来。
解决办法:
如果不想要看到这么多错误的打印的话,可以尝试以下几种办法:
(1)可以修改系统启动时的打印等级,通过命令“cconfigs”跳转到方案的配置目录,然后找到文件env*.cfg(这里*指的是内核版本,若是4.9内核,则配置文件名为env-4.9.cfg,在4.9以前版本的内核中都是这样命名的。只有在5.4内核中,是直接命名为env.cfg)。然后修改参数loglevel,将其值改为0,那么就可以减少很多内核打印了。
(2)在触摸屏代码中,在probe函数中初始化一些资源后,尽快地调用I2C去读取触摸屏的一些ID号或者是版本号,若读取失败后,就立即退出驱动加载。没必要继续进行其他设置相关的I2C通信。
2、使用i2c-detect工具检索某个I2C总线哪些地址存在设备时,出现很多错误通信的log信息,可能会令人误以为该I2C总线是有问题的。如下图所示:
上图命令i2cdetect -y 2的作用是:检索I2C2总线上所有的I2C设备。这里的打印其实都是正常的,检索是通过cpu主动向全部I2C地址读写数据来检测的。可能硬件上一根I2C总线就连接了一个I2C设备,只会占用一个I2C设备地址,那么其他地址都是为空的。自然而然地,与这些空的设备地址通信肯定是失败的,因此也一定会有错误的打印打出来。
举报
王桂荣
2021-12-29 10:00:51
解决办法:
(1)减少系统内核打印等级,进入内核打印等级修改节点“printk”的目录:
cd /proc/sys/kernel
ls
cat printk
echo 2 > printk
一般内核打印等级为4,当输入到printk的值小于4时,即可把大于等于4的打印等级全部关闭。
(2)使用adb去调试:
内核打印是通过串口打印出来的,若通过u***连接开发板,通过adb调试进入系统调试界面,adb是不能接收串口打印的,因此自然地看不到内核错误打印。
解决办法:
(1)减少系统内核打印等级,进入内核打印等级修改节点“printk”的目录:
cd /proc/sys/kernel
ls
cat printk
echo 2 > printk
一般内核打印等级为4,当输入到printk的值小于4时,即可把大于等于4的打印等级全部关闭。
(2)使用adb去调试:
内核打印是通过串口打印出来的,若通过u***连接开发板,通过adb调试进入系统调试界面,adb是不能接收串口打印的,因此自然地看不到内核错误打印。
举报
更多回帖
rotate(-90deg);
回复
相关问答
I2C
通信
触摸屏
I2C
通信
2016-04-22
2105
如何解决
i2c
设备主机与从机直接无法
正常
数据交互的问题
2020-12-30
17574
STM32的
I2C
特性是什么?
2022-01-18
879
在用mlx90614进行软件
i2c
库
通信
时发现采集数据出错有何
解决办法
2022-08-15
1195
使用
I2C
的IO扩展芯片TCA9555特别慢谁知道原因
2022-10-24
838
STM32的
I2C
来读取陀螺仪输出的数据用库函数容易死的
解决办法
?
2020-06-01
1107
关于RK3568-ANDROID11-BOARD_HAVE_DONGLE
报错
的原因
及其
解决办法
2022-03-02
1453
尝试通过ISR执行
I2C
通信
2020-04-02
1750
从使用效果看
I2C
通信
方式和普通串口方式哪个抗干扰好
一些
?
2023-11-01
332
如何驱动
I2C
总线?
2019-09-20
2425
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分