186
社区成员
发帖
与我相关
我的任务
分享

我在主函数增加了I2C初始化程序,使用的是POLL 主机模式,初始化过程没有出错,往从设备读数据的时候,先写寄存器地址,返回的是1,应该是写成功,然后进行读取数据,也是返回1,但是值是0,导致初始失败,请问一下这是什么情况?有没有操作成功?

问题解决了,HAL库接口会在最后发stop,只能自己排列组合一下,比如
LL_I2C_PutCmdData(i2cReg, data, I2C_CMD_WRITE);
LL_I2C_PutCmdData(i2cReg, 0, I2C_CMD_READ_STOP);
解决了问题,能有数据了
你好:
最好用逻辑分析仪看下 pin上的信号。接受失败有可能从机没准备好,主机的read在address阶段NAK失败导致返回值为0。