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

[复制链接]
 楼主| HaydnSyx 发表于 2013-6-5 16:59 | 显示全部楼层 |阅读模式
为什么我每次通过串口调试助手都得到的是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;
  }
}
结果确是:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
lzmm 发表于 2013-6-5 22:25 | 显示全部楼层
发送不要在中断里面。
 楼主| HaydnSyx 发表于 2013-6-6 15:38 | 显示全部楼层
lzmm 发表于 2013-6-5 22:25
发送不要在中断里面。

为什么?说详细点
1988020566 发表于 2013-6-6 20:07 | 显示全部楼层
你先在在开中断前,发送个测试的字符看看。
banalmaster 发表于 2013-6-7 09:54 | 显示全部楼层
9600的波特率,32768Hz的主频有些小了;你换个大点的系统时钟试试,说不定就解决问题了。
xukaihp 发表于 2014-8-8 14:26 | 显示全部楼层
我也是这个问题,你解决了吗?
liu1004010308 发表于 2014-8-8 17:41 | 显示全部楼层
你是否需要将电脑的端口也设置 成这个波特率,你试试
youluo235 发表于 2014-8-8 17:46 | 显示全部楼层
可以参考官网149串口的例子。对照下就好
sx12341234 发表于 2014-8-25 08:45 | 显示全部楼层
把while((IFG1 & UTXIFG0)==0);             // 等待发送缓存器为空这句话去了就ok了
sx12341234 发表于 2014-8-25 08:48 | 显示全部楼层
这个程序把查询发送和串口中断发送混为一谈了
firstblood 发表于 2014-8-25 22:51 | 显示全部楼层
这个注意波特率的设置的吧。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

13

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部