我正在尝试使用I2C与AT90CAN128进行通信,但是它并没有超出while循环的范围:
while(!(TWCR & (1<<TWINT)));
它保留在while循环中。据我说,它不能设置TWINT标志。
void TWI_start(void)
{
TWCR= (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while(!(TWCR & (1<<TWINT)));`enter code here`
while((TWSR & 0xF8)!= 0x08);
}
有什么建议吗?
TWI主机尝试声明SDA和SCL,并检查SDA和SCL是否都在GND。检查连接和上拉电阻的值。如果控制器无法将线拉低,则START条件将永远不会被注册,并且TWINT将永远不会被设置。