为什么我每次用i2cget读取不到刚刚i2cset 写入的值

为什么我每次用i2cget读取不到刚刚i2cset 写入的值,这是为什么?设备是PCF8591,地址是0x48,

img

img

这个i2c的函数调用的i2c驱动是不是不正确哦~i2c由于有上拉电阻存在,一般就算读不到数据应该也是全0xff的值!

  • 这篇博客: 【树莓派C语言开发】实验12:PCF8591模数转换器模块中的 2.1 i2c总线 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • i2c总线是由飞利浦公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。

    • 飞利浦官方有一个关于PCF8591的详细介绍文档,不过它是英语的。我会上传到gitee仓库里面分享给大家,仓库链接在开头介绍过了🤦‍♂️回到开头

    i2c总线系统中的每个PCF8591设备通过向该设备发送有效地址而被激活。地址由固定部分和可编程部分组成。可编程部分必须按照地址引脚A0,A1,A2进行设置。地址必须以邮寄方式发送。

    在i2c总线协议中,在启动条件之后的第一个字节,地址字节的最后一个位是读/写位,它设置了下列数据传输的方向

    image-20220421213703255