nuc029lan用作I2C从机,和其它主控
通信,偶尔发现nuc029lan的scl会处于低电平状态,中断程序都有I2C_SET_CONTROL_REG(I2C0, I2C_I2CON_SI_AA); 这种问题有谁遇到过吗?mcu好像一直处于中断程序里面,主循环有个io翻转输出的,测量它没有变化
开了超时并有清除标志
void I2C0_IRQHandler(void)
{
uint32_t u32Status;
u32Status = I2C_GET_STATUS(I2C0);
P05 ^= 1;
if(I2C_GET_
tiMEOUT_FLAG(I2C0))
{
if( g_u8SlvDataRx ) {
I2C_ClearTimeoutFlag(I2C0);
g_u8SlvDataRx = 0;
}
else if( g_u8SlvDataTx ) {
I2C_ClearTimeoutFlag(I2C0);
g_u8SlvDataTx = 0;
}
else {
/* Clear I2C0 Timeout Flag */
I2C_ClearTimeoutFlag(I2C0);
}
}
else
{
if(s_I2C0HandlerFn != NULL) {
s_I2C0HandlerFn(u32Status);
}
}
}
/* I2C enter no address SLV mode */
I2C_SET_CONTROL_REG(I2C0, I2C_I2CON_SI_AA);