我今天在data sheet上注意到,如果从机获得0x88, 0xC8, 0xC0 和0xA0状态后,从机可以切换到无地址模式,自身SLA不会被辨识。如果进入这种状态,从机不再接收主机任何信号或地址。在这种状态,需要复位才能离开这种状态。
这不对吧,在实例程序中,tx 和 rx 要传256次数据,每次传送完数据,还会在发一个stop,这样从机不就进入0xA0,也没见从机复位,不是接着下一笔,又开始了
if(g_u8MstDataLen != 3)
{
I2C_SET_DATA(I2C0, g_au8MstTxData[g_u8MstDataLen++]);
I2C_SET_CONTROL_REG(I2C0, I2C_CTL_SI);
}
else
{
I2C_SET_CONTROL_REG(I2C0, I2C_CTL_STO_SI);
g_u8MstEndFlag = 1;
}
|