ch583M的iic在反复读写过程中漏读数据
if(!CH58x_iic_master_write(0xAE,tx_buf,1,1,1000))
{
????PRINT("%s%d\n",__FUNCTION__,__LINE__);
}
if(!CH58x_iic_master_read(0xAE,temp,1,1000))
{
????PRINT("%s%d\n",__FUNCTION__,__LINE__);
}

用ch583M作为主机,外接传感器,用iic进行交互。

代码采用硬件iic的方式,反复读写传感器的寄存器采样的数据,在此过程中出现超时、漏数据的情况。

采样速率100Hz。

求助有没有什么方法调试能够防止他漏

屏幕截图 2023-10-08 164751.png



您好,用的是查询方式还是中断方式读写从机;代码中除了跑IIC,有没有运行其他逻辑,有没有跑BLE或是USB;出现问题时,将寄存器R16_I2C_STAR1、R16_I2C_STAR2打印出来查看超时原因。


您好,我在代码中没有运行其他逻辑,除了IIC,只剩下打印串口,BLE没加。而且出现超时的寄存器上电重启之后可能不一样。

另外我通过I2C_CheckEvent()接口在发送从机寄存器地址的写函数部分,发送完从机地址之后,addr还是0从而超时。

image.png



从机是什么设备,您可以将打印截图、测试代码块等信息发送到邮箱zhaiyw@wch.cn。


只有登录才能回复,可以选择微信账号登录