我正在尝试使用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);
}有什么建议吗?
发布于 2020-01-09 16:08:37
可能是硬件问题。
TWI主机尝试断言SDA和SCL,并检查SDA和SCL是否都在GND。检查上拉电阻的连接和值。如果控制器无法拉下线路,则启动条件永远不会注册,TWINT也永远不会设置。
https://stackoverflow.com/questions/59653754
复制相似问题