【TI 技术资料分享】基于MSP430F149单片机的串口0驱动程序

2019-07-30 18:32发布

基于MSP430F149单片机的串口0驱动程序 基于MSP430F149单片机的串口0驱动程序.zip (1.15 KB, 下载次数: 4) 2015-3-10 12:03 上传 点击文件名下载附件

  1. #include "msp430x14x.h"
  2. #include "Uart0.h"



  3. //增加与PC机的握手协议--开始
  4. void Iint_Uart0(void)                  //初始化com0
  5. {
  6.     UCTL0&=~SWRST;  //SWRST复位,USART允许
  7.     UCTL0=0X10;    //8位数据位,1位停止位,无效位
  8.     UBR00=0X03;
  9.     UBR10=0X00;   //使用32KHz,波特率为9600
  10.     UMCTL0=0X4A;
  11.     UTCTL0=0X10;   //选定ACLK(32KHz晶振)为时钟源
  12.    
  13.     ME1|=UTXE0+URXE0;
  14.     //ME2|=UTXE1;

  15.     P3SEL|=0X30;     //P3.4 P3.5    0011 0000
  16.     P3DIR|=0X28;     //             0010 0000
  17.     IE1|=URXIE0;
  18.                         
  19. }

  20. void fnUart0_Send_Byte(unsigned char aa)
  21. {
  22.     P3OUT|=BIT3;
  23.     TXBUF0=aa;
  24.     while((UTCTL0&0X01)==0X00)
  25.     {
  26.         ;
  27.     }
  28.     P3OUT&=~(BIT3);
  29. }

  30. #pragma vector=USART0RX_VECTOR
  31. __interrupt void usart0_rx (void)
  32. {
  33.    
  34.     switch(cRcv_Stat0)
  35.     {
  36.       case 0:
  37.         new_data=RXBUF0;
  38.         if((new_data==0xa6)&&(last_data==0x02))
  39.         {
  40.             PC_data[1]=new_data;            
  41.             PC_data[0]=last_data;      
  42.             cRcv_Stat0=1;       //是帧头
  43.             cal=2;
  44.             
  45.         }
  46.         else              //
  47.         {        
  48.             last_data=new_data;
  49.             cal=0;
  50.             cRcv_Stat0=0;
  51.        }
  52.         break;
  53.         
  54.      case 1:
  55.         PC_data[cal]=RXBUF0;   //帧数据
  56.         
  57.         if((PC_data[cal]==0x0a)&&(PC_data[cal-1]==0x0d))
  58.         {
  59.            cValid_flag=0x55;
  60.            cRcv_Stat0=0;
  61.            cal=0;
  62.            new_data=0;
  63.            last_data=0;
  64.    
  65.         }
  66.         else
  67.         {
  68.           cal++;
  69.         }
  70.         break;
  71.         
  72.     default:
  73.        cRcv_Stat0=0;
  74.         break;
  75.                                 
  76.     }   
  77.       
  78. }  
  79. //增加与PC机的握手协议--结束
复制代码

0条回答

一周热门 更多>