关于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条回答
lzmm
1楼-- · 2019-07-31 19:34
发送不要在中断里面。
HaydnSyx
2楼-- · 2019-08-01 00:37
lzmm 发表于 2013-6-5 22:25
发送不要在中断里面。

为什么?说详细点
1988020566
3楼-- · 2019-08-01 03:55
你先在在开中断前,发送个测试的字符看看。
banalmaster
4楼-- · 2019-08-01 05:52
9600的波特率,32768Hz的主频有些小了;你换个大点的系统时钟试试,说不定就解决问题了。
xukaihp
5楼-- · 2019-08-01 08:49
 精彩回答 2  元偷偷看……
liu1004010308
6楼-- · 2019-08-01 11:33
你是否需要将电脑的端口也设置 成这个波特率,你试试

一周热门 更多>