打印

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

[复制链接]
3988|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
为什么我每次通过串口调试助手都得到的是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;
  }
}
结果确是:

捕获.PNG (31.56 KB )

捕获.PNG

相关帖子

沙发
lzmm| | 2013-6-5 22:25 | 只看该作者
发送不要在中断里面。

使用特权

评论回复
板凳
HaydnSyx|  楼主 | 2013-6-6 15:38 | 只看该作者
lzmm 发表于 2013-6-5 22:25
发送不要在中断里面。

为什么?说详细点

使用特权

评论回复
地板
1988020566| | 2013-6-6 20:07 | 只看该作者
你先在在开中断前,发送个测试的字符看看。

使用特权

评论回复
5
banalmaster| | 2013-6-7 09:54 | 只看该作者
9600的波特率,32768Hz的主频有些小了;你换个大点的系统时钟试试,说不定就解决问题了。

使用特权

评论回复
6
xukaihp| | 2014-8-8 14:26 | 只看该作者
我也是这个问题,你解决了吗?

使用特权

评论回复
7
liu1004010308| | 2014-8-8 17:41 | 只看该作者
你是否需要将电脑的端口也设置 成这个波特率,你试试

使用特权

评论回复
8
youluo235| | 2014-8-8 17:46 | 只看该作者
可以参考官网149串口的例子。对照下就好

使用特权

评论回复
9
sx12341234| | 2014-8-25 08:45 | 只看该作者
把while((IFG1 & UTXIFG0)==0);             // 等待发送缓存器为空这句话去了就ok了

使用特权

评论回复
10
sx12341234| | 2014-8-25 08:48 | 只看该作者
这个程序把查询发送和串口中断发送混为一谈了

使用特权

评论回复
11
firstblood| | 2014-8-25 22:51 | 只看该作者
这个注意波特率的设置的吧。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

13

帖子

1

粉丝