I2C无法写入和读出寄存器值

博客分享了一次关于6124B控制DMS模组功能开发中遇到的I2C读写失败问题及解决方案。作者因误删源码而加班赶制,发现I2C读写失败源于6124B寄存器地址为8bit,而其函数设置为16bit,导致设备无法正确获取地址。解决办法在于检查并匹配I2C寄存器地址的位数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前不小心把自己做的通过6124B控制dms模组的功能的源码全给删掉了,可是吓死我了,没办法只能自己加班偷偷赶出来。

这次给我的教训就是所有的源码都应该留有备份,除非确认不需要的源码。

 

凭借着我的记忆,我其实已经把6124B的功能做出来了,只是因为I2C读写失败的问题导致一直接受不了dms的图像。我用的是我之前写的linux应用层的i2c设备文件的读写方式进行控制i2c接口的。一直以为是没有问题的。之所以写入和读取不成功是因为6124B的寄存器地址是8bit的,而我之前写的读写i2c的函数里面的地址是16bit的。这导致了i2c从设备一直不能正确获取到寄存器的地址。

 

解决:查看i2c的寄存器地址是8bit还是16bit。不同长度的地址会出现错误。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值