2200|1

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

uart通讯问题求助 [复制链接]

用430的lunchpad写了一个uart通讯小程序,功能是实现“回声”,把PC发给430的数据再返回给PC。
问题1:无论选择MSB先发送还是LSB先发送(UCA0CTL0寄存器UCMSB位),接收到的数据都没有变化,为什么?
问题2:程序中设置通讯参数为偶校验,PC端串口调试器使用偶校验发送数据时,功能正常。改为PC端使用奇校验发送数据后,没有数据返回,但状态寄存器UCA0STAT中各标志位没有变化。如果使能UCA0CTL0寄存器的UCRXEIE位,PC端能够收到数据返回,但UCA0STAT仍然没有变化。为什么?

代码如下:
#include "msp430g2553.h"

int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
//设置DCO频率
  BCSCTL1=CALBC1_1MHZ;
DCOCTL=CALDCO_1MHZ;
//使能RXD,TXD
P1SEL=BIT1+BIT2;
P1SEL2=BIT1+BIT2;

//初始化LED
P1DIR|=BIT0+BIT6;
P1OUT&=~BIT0;
//校验使能,偶校验,数据位7
UCA0CTL0|=BIT7+BIT6+BIT4;
//选择SMLK为uart时钟源
UCA0CTL1|=UCSSEL_2;
//波特率9600
UCA0BR0=104;
UCA0BR1=0;

UCA0MCTL=UCBRS0;

UCA0CTL1&=~UCSWRST;
//UCA0CTL1|=BIT5;
IE2|=UCA0RXIE;

_EINT();
LPM0;
  return 0;
}

#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
  while(!(IFG2&UCA0TXIFG));
  UCA0TXBUF=UCA0RXBUF;
  P1OUT^=BIT0+BIT6;
}

最新回复

没有看到你有使能uart的语句哦,只看到你设置校验,uart时钟,波特率等。 如果是初学的话,建议对语句多加注释。这样你看的明白,别人也看得懂。 if可以的话,去TI的官网上下载例程参考下。  详情 回复 发表于 2015-8-12 11:13
 
点赞 关注(1)

回复
举报

4177

帖子

9

TA的资源

五彩晶圆(高级)

沙发
 
没有看到你有使能uart的语句哦,只看到你设置校验,uart时钟,波特率等。
如果是初学的话,建议对语句多加注释。这样你看的明白,别人也看得懂。
if可以的话,去TI的官网上下载例程参考下。
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表