收到几个数据后,I2C死机。
void I2C_SlaveTRx(uint32_t u32Status)
{
...
if(u32Status == 0x60)
...
else
{
/* TO DO */
printf("Status 0x%x is NOT processed\n", u32Status);
}
}
2022/12/02 10:28
现象:收到几个数据后,I2C死机。
说明:由于出现没有处理的状态,一直未执行到写SI,所以I2C外设不再做其它状态的处理。
解决:增加case,或者在default里重置I2C外设。
else
{
/* TO DO */
printf("Status 0x%x is NOT processed\n", u32Status);
I2C_Close(I2C0);
I2C0_Init();
}