MSP430 F5438A I2C通信问题

2019-03-24 08:52发布

最近遇到I2C通信的时候,有时候程序运行卡死在 while((UCB1IFG & UCTXIFG)==0);在这个循环中跳不出来导致整个程序死掉,但是重启或者重新下载程序以后又没有这个问题了,不知道这是什么原因。求帮忙分析下
void Random_read1(unsigned char Address)
{
  while (UCB1CTL1 & UCTXSTP);               // Ensure stop condition got sent
  UCB1CTL1 |= UCTXSTT + UCTR;               // 发送起始位,确定为写
  UCB1TXBUF = Address;                      // 发送址位
  while((UCB1IFG & UCTXIFG)==0);            // 判断是否发送完毕

  UCB1CTL1 &= ~UCTR;                        // 确定为接收
  while (UCB1CTL1 & UCTXSTP);               // 判断总线是否被释放
  UCB1CTL1 |=UCTXSTT;                       // 重新发送起始位
  while((UCB1CTL1 & UCTXSTT)==1);           // 判断起始位是否发送成功
  for(unsigned char i=0x0;i<0x2f;i++);      // 延时确定数据已经被发送出去
  UCB1CTL1 |=UCTXSTP + UCTXNACK;            // 发送停止位和NACK位
}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
45645645
1楼-- · 2019-03-24 18:20
。。。。。看不出来  资料太少

一周热门 更多>

相关问题

    相关文章