MSP430 5438 串口发送

2019-03-24 13:39发布

/****************************************************************
串口发送字符串函数    
****************************************************************/
void UartTX_Send(unsigned char *Data,int len)
{
  int j;
  for(j=0;j<len;j++)
  {
    while (!(UCA1IFG&UCTXIFG));
    UCA1TXBUF =*Data++;
   
  }
}
根据datesheet上面写的: (UCTXBUFx)   The transmit data buffer is user accessible and holds the data waiting to be moved into the transmit shift  register and transmitted on UCAxTXD. Writing to the transmit data buffer clears UCTXIFG. 执行完UCA1TXBUF =*Data++; 之后UCTXIFG的值不是应该变成0了吗?可是单步调试值没有发生变化,为什么呢? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
z7turn
1楼-- · 2019-03-25 00:25
< UCA1TXBUF =*Data++;    这句貌似不能这么写吧?
UCA1TXBUF = *Data;
Data++;
z7turn
2楼-- · 2019-03-25 03:03
 精彩回答 2  元偷偷看……
tgreen
3楼-- · 2019-03-25 06:57
while (!(UCA1IFG&UCTXIFG));
这个不就是在检测UCA1TXBUF是否为空吗
Triton.zhang
4楼-- · 2019-03-25 08:24
while (!(UCA1IFG&UCTXIFG));
    UCA1TXBUF =*Data++;

1。 这样写是没问题的,你连续跑应该能正确发送的。至于单步运行为什么没清零这个标志,应该是仿真器和芯片没同步造成的。
Triton.zhang
5楼-- · 2019-03-25 10:32
 精彩回答 2  元偷偷看……
z7turn
6楼-- · 2019-03-25 14:30
不好意思   没看到你检查标志位。。。。   擦

一周热门 更多>

相关问题

    相关文章