[AVR I2C故障

问题描述 投票:0回答:1

我正在尝试使用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); 
}

有什么建议吗?

interrupt avr i2c
1个回答
0
投票
可能是硬件问题。

TWI主机尝试声明SDA和SCL,并检查SDA和SCL是否都在GND。检查连接和上拉电阻的值。如果控制器无法将线拉低,则START条件将永远不会被注册,并且TWINT将永远不会被设置。

© www.soinside.com 2019 - 2024. All rights reserved.