|
回复 沙发wstt 的帖子
void Init_IIC()
{
P3SEL |= BIT1 + BIT2; //开启管脚的第二功能
UCB0CTL1 |= UCSWRST; //置位UCSWRST,进行后续设置
UCB0CTL0 |= UCMST + UCMODE_3 + UCSYNC; //7位地址,IIC模式,主机模式
UCB0CTL1 |= UCSSEL__SMCLK; //设置时钟为SMCLK 2.5MHz
UCB0BR0 = 25;
UCB0CTL1 &=~UCSWRST; //清除UCSWRST
}
//发送模式下的开始信号
void IIC_TRANS_Start()
{
UCB0CTL1 |= UCTXSTT + UCTR;
}
//接收模式下的开始信号
void IIC_RECEI_Start()
{
UCB0CTL1 &=~UCTR;
UCB0CTL1 |= UCTXSTT;
}
void IIC_Stop()
{
UCB0CTL1 |= UCTXSTP;
}
就是这样,在发送地址后第九位就收不到从机的ACK |
|