|
使用ATMega16的IIC接口控制从设备,从设备不能正确应答!求解决办法?
[复制链接]
执行程序如下:
TWBR=0x12;//TWI比特率寄存器的值设为18
TWCR=(1<
while(!(TWCR & (1<
if((TWSR & 0xF8)!= START) //检查状态寄存器,不是START转出错处理
ERROR();
TWDR=SLA_W ; //装入SLA_W
TWCR=(1<
while(!(TWCR & (1<
if((TWSR & 0xF8)!= MT_SLA_ACK ) //检查状态寄存器,不是MT_SLA_ACK转出错处理
ERROR();
按照ATMega16用户手册上的步骤,在主机发送模式下,先发送开始信号,然后装载SLA_W。
但是在装入SLA_W(根据从机的用户手册,为25H)后,状态寄存器TWSR总是0x48,而不是手册上的0x18,
从而程序转入了出错处理而不能继续执行,请问这个问题高如何解决?
硬件连接以用万用表检查无误。
|
|