求解:IIC驱动程序中总线上为什么读取数据比写数据要多写一个字节的设备地址

求解:IIC驱动程序中总线上为什么读取数据比写数据要多写一个字节的设备地址,第1张

因为I2C在读数据的时候实际上是两次传输,第一次传输向设备发送需要读取的寄存器地址(实际的写 *** 作),然后读取数据(实际的读 *** 作);而写 *** 作直接就是把寄存器地址和需要写进去的数据当做一次传输进行(实际的写 *** 作)。可以用示波器看看数据线上的数据。

I2C配置

I2C调试检查:

1、检查I2C配置的相关内容,是否存在错误,或者漏配。

2、确保SDA和SCL所配置的GPIO没有被配置,否则会硬件配置出问题或者GPIO设置无效。

3、若I2C配置无误后,检查相关硬件问题,使用万用表测量I2C_SDA以及I2C_SCL的供电电压,如果与原理图中所示供电电压相差无几,则表示I2C供电电压没有问题。反之,则代表供电电压存在问题。

4、添加从设备,通过设备树来注册一个从设备,如果I2C总线正常工作,我们就可以创建一个从设备驱动程序并注册到i2c总线上


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8085373.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存