关于MSP430F149串口UART通信问题.......

2019-07-31 15:53发布

为什么我每次通过串口调试助手都得到的是0x00数据???是程序有错误吗
代码如下:
#include  <msp430x14x.h>
unsigned char aa[20]="adf_strxcgndydt1342";
char i=0;
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // 停止看门狗
  P3SEL |= 0x30;                            // 设置P3.4、P3.5分别为相应的发收口
  ME1 |= UTXE0+URXE0;                       // 使能UART模块
  UCTL0 |= CHAR;                            // 设置成8位数据
  UTCTL0|= SSEL0;                           // 选择辅助时钟32768Hz
  UBR00 = 0x03;                             //
  UBR10 = 0x00;                             //
  UMCTL0 = 0x4A;                            // 设置波特率为9600比特
  UCTL0 &= ~SWRST;
  IE1 |=UTXIE0+URXIE0;                      // 设置中断
  _BIS_SR(LPM0_bits + GIE);                 // 进入低功耗
}

#pragma vector=UART0TX_VECTOR
__interrupt void usart0_tx (void)
{
  if(i<20)
  {
    while((IFG1 & UTXIFG0)==0);             // 等待发送缓存器为空
    TXBUF0=aa[i++];  
    IFG1 &= ~UTXIFG0;
  }
  else
  {
    i=0;
  }
}
结果确是:

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
youluo235
1楼-- · 2019-08-01 11:58
可以参考官网149串口的例子。对照下就好
sx12341234
2楼-- · 2019-08-01 15:25
把while((IFG1 & UTXIFG0)==0);             // 等待发送缓存器为空这句话去了就ok了
sx12341234
3楼-- · 2019-08-01 21:08
这个程序把查询发送和串口中断发送混为一谈了
firstblood
4楼-- · 2019-08-01 22:15
 精彩回答 2  元偷偷看……

一周热门 更多>