查看: 2931|回复: 0

[教程] 串口发送问题

[复制链接]
  • TA的每日心情
    奋斗
    2014-11-15 18:35
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-11-17 17:27:55 | 显示全部楼层 |阅读模式
    分享到:
    最近在用launchPad实现串口收发数据,参考了一些资料,捣鼓出了这么个程序,求大神帮忙看看。怎么收不到数据?需要做哪些改进?
    #include "msp430g2553.h"

    #define uchar unsigned char
    #define uint unsigned int
    //char *s;
    int i;
    /*****系统时钟初始化*****/
    void Clock_Init()
    {
      BCSCTL2 |= SELS;
    }
    void delay()
    {
      while(i<1000);i--;
    }
    /*****MSP430内部看门狗初始化*****/
    void WDT_Init()
    {
      WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
    }

    /*****串口设置*****/
    void UART_Init()
    {
      P1SEL|= BIT1 + BIT2;//P1.1 P1.2设置为TXD,RXD
      P1SEL2|= BIT1 + BIT2;
      UCA0CTL1 |= UCSWRST;//复位UART,并设置串口
      UCA0CTL1 |= UCSSEL_2;//选择串口时钟
      UCA0CTL0 &= (~UC7BIT);//设置字符长度为8位
    UCA0BR0 = 0x06;//设置波特率,1.048576MHZ/9600
      UCA0BR1 = 0;

      UCA0MCTL = UCBRS2 + UCBRF3 + UCOS16;
      UCA0CTL1 &= (~UCSWRST);//串口设置完毕,在UCSWRST=1时设置串口

       IE2|= UCA0RXIE;
    }

    void main( void )
    {
      WDT_Init();//看门狗初始化
    //  Clock_Init();//系统时钟初始化
      UART_Init();//串口初始化
      P1DIR|=BIT0;
      P1OUT|=0;
      _EINT();//开中断

       for(;;)
      {
        _BIS_SR(LPM3_bits + GIE);
       if(IFG2&&(!UCA0TXIFG)){
           P1OUT|=BIT1;
           delay();
         UCA0TXBUF=UCA0RXBUF;
         P1OUT&=~BIT2;
         P1OUT|=BIT0;
        }
      }
    }

    #pragma vector=USCIAB0RX_VECTOR
    __interrupt void USCIA0RX_ISR (void)
    {
      LPM3_EXIT;

    }



    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-23 03:00 , Processed in 0.114030 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.