51/AVR单片机开发系统
·设为首页
·联系站长
·加入收藏
 位置: 雨飞电子科技 >> 文章资讯 >> 单片机 >> MSP430单片机 >> 正文 本站推出51/AVR单片机专业开发系统  [2006-10-02 17:24:49]      雨飞电子科技综合资讯网开通  [2006-01-15 23:09:58]
  msp430f449的RS232接口程序    3星级
msp430f449的RS232接口程序
[ 作者:未知     来源:网上收集     点击数:     更新时间:2006-10-23     文章录入:飞奔
【字体: 字体颜色

#include "msp430x44x.h"

void init_uart(void);
void uart_start(void);
void uart_send(void);
void uart_receive(void);

unsigned char RXDATA_BUF[10],TXDATA_BUF[10]={0xbd,0x77,0x3d,0xc5,0xc6,0xf5,0x68,0x0d,0x6b,0xff};

unsigned int RX_count=0,TX_count=0,TXBUF_num=10,RXBUT_num=10,FLAG;

void main(void)
{   init_uart();
    uart_start();
    while(1)
    {_BIS_SR(CPUOFF);
    _NOP();
    }
}

--------------------------------------------------------
void init_uart(void)                    //初始化UART
{   unsigned int i;
    WDTCTL=WDTPW+WDTHOLD;
    FLL_CTL1|=XT2OFF+SELM_XT2+SELS;     //选择MCLK时钟源
    do                                  //等待时钟稳定
    {   IFG1&=~OFIFG;
        for(i=0;i<0xff;i++);
    }while((FLL_CTL0&XT2OF)==XT2OF);
    UCTL0|=SWRST;                       //控制寄存器位
    UCTL0|=CHAR;
    UTCTL0=SSEL0+SSEL1;                 //选择发送时钟源复位
    UBR00=0XA0;                         //波特率9600
    UBR10=0X01;
    UMCTL0=0X5E;
    UCTL0&=~SWRST;                      //选择发送时钟源置位
    ME1|=URXE0+UTXE0;                   //使能TXD  RXD
    IE1|=URXIE0;
    IFG1=0X00;
    P2SEL|=0X30;                        //模块选用
    P2DIR|=0X10;
    for(i=0;i<10;i++) {RXDATA_BUF=0;}//清接收缓存
    _EINT();
}

---------------------------------------------------------
void uart_start(void)                   //启动发送
{   IE1|=UTXIE0;
    while((UTCTL0&BIT0)!=BIT0);
    TXBUF0=TXDATA_BUF[0];
    TX_count=1;
}

----------------------------------------------------------
void uart_receive(void)                 //接收
{   RXDATA_BUF[RX_count]=RXBUF0;
    RX_count+=1;
    if(RX_count>=RXBUT_num) {RX_count=0;}
}
-----------------------------------------------------------
void uart_send(void)                    //发送
{   TXBUF_num-=1;
    if(TXBUF_num>0)
      {   TXBUF0=TXDATA_BUF[TX_count];
          TX_count+=1;
        
      }
    else
     {   FLAG+=1;
        if(FLAG>10)  {IE1&=~UTXIE0;}
              else  {   TXBUF_num=10;
                        TX_count=0;
                        uart_start();
                     }
     
     }
}
-------------------------------------------------------------
interrupt [UART0TX_VECTOR] void uart_tx(void)//发送中断响应
{  
    uart_send();
}

--------------------------------------------------------------
interrupt [UART0RX_VECTOR] void uart_rx(void)//接收中断响应
{
    uart_receive();
}

  • 上一篇文章: 使用MSP430F1121中断须要注意的问题

  • 下一篇文章: 没有了
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
     最新5篇热点文章
     本站推出51/AVR单片机开发系统
     锁相环频率合成控制器MB1501/MB1504置...
     4900种场效应管参数资料(五)
     4900种场效应管参数资料(四)
     4900种场效应管参数资料(三)
     
     最新5篇推荐文章
     本站推出51/AVR单片机开发系统
     锁相环频率合成控制器MB1501/MB1504置...
     4900种场效应管参数资料(一)
     ATMEL89系列单片机特点
     2004-2005中国本土嵌入式十佳企业揭晓...
     
     相 关 文 章

      网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
     设为首页  加入收藏  关于本站  版权申明  联系站长  友情链接  在线留言  与我同在 
    Copyright© 2005-2006 Www.Yufik.Com All Rights Reserved
    广州雨飞电子科技 E-mail: yufik@163.com 中国·广东·广州

    粤ICP备05026189号