i2c读取slave 器件error code 代表什么意思

通过i2c读取cpld寄存器时报错,log提示ret 是5 请问返回5代表什么意思?

另外请问 ret的取值范围是多少?分别代表什么意思?

5的含义

  1. 一般0x800会与0x1一起出现,即0x801;或者与0x200、0x1一起出现,即0xa01,这时引起这样的错误原因一般是从器件无响应导致的。请联系硬件同事排查slave不响应的原因。
    a)确认slave地址是否存在。
    b)确认slave是否在活跃状态。

  2. 只有0x800的情况,或是与0x200一起出现,即0xa00,一般是存在总线干扰,请联系硬件同事排查总线。
    a)确认硬件链路是否通畅,信号质量是否良好。

ret的取值范围是多少?分别代表什么意思?

不好意思,想问下这个图里还出现了0x10000,这个值具体表示什么情况?