3438|2

27

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430g2553串口程序 [复制链接]

下面是一个MSP430g2553串口程序, 但是只能实现单片机发功能  不能实现接受功能,还请高手指点  给个给个可以发和接的程序  不胜感激啊!!

  #include "msp430G2553.h"
#include "stdio.h"
int a[8],i;
void Init_uart0()
{

  UCA0CTL1|=UCSWRST;
  UCA0CTL0&=~UC7BIT;//字符长度为8
  UCA0CTL1|=UCSSEL_2;//选择系统时钟
  UCA0BR0=0x6D;  //波特率为9600
  UCA0BR1=0;
  UCA0MCTL=0;//UCA0MCTL=UCBRS0;
  IE2=UCA0RXIE+UCA0TXIE;//开接收使能
  UCA0CTL1&=~UCSWRST;
  P1SEL|=BIT1+BIT2; //将P1.1 P1.2设为第二功能
  P1SEL2|=BIT1+BIT2;
}

void Uart0Sends(char *s)
{
  while(*s!='\0')
  {
    UCA0TXBUF=*s;
    while((IFG2&UCA0TXIFG)==0); //查询发送是否结束
    IFG2&=~UCA0TXIFG; //清除发送一标志位
    s++;
  }
}

void main( )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  BCSCTL1 = CALBC1_1MHZ;   
  DCOCTL  = CALDCO_1MHZ;
  Init_uart0();
  _EINT();
  while(1)
  {
    Uart0Sends("ni好");
    __delay_cycles (1048576);
  }
}
#pragma vector=USCIAB0RX_VECTOR
__interrupt void usart0_rx(void)
{
  while((IFG2&UCA0RXIFG )==0);
}

[ 本帖最后由 刘安126 于 2012-9-3 10:41 编辑 ]

最新回复

IE2=UCA0RXIE+UCA0TXIE;//开接收使能   UCA0CTL1&=~UCSWRST; 这两句换一下位置 另外IE2这个地方用逻辑或(|=),不用“=” 写为以下: UCA0CTL1&=~UCSWRST; IE2 |= UCA0RXIE;//开接收使能  详情 回复 发表于 2013-8-10 16:02
 
点赞 关注

回复
举报

1800

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
这些都是很基本的功能,在站内搜索MSP430G2xx3 Code Examples就会有一堆官方代码了,你就在你发的这个程序中加入接收的函数,就可以了
 
 

回复

25

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
IE2=UCA0RXIE+UCA0TXIE;//开接收使能
  UCA0CTL1&=~UCSWRST;
这两句换一下位置
另外IE2这个地方用逻辑或(|=),不用“=”

写为以下:
UCA0CTL1&=~UCSWRST;
IE2 |= UCA0RXIE;//开接收使能
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表