<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430的485通信程序(接收字符串指令)

          MSP430的485通信程序(接收字符串指令)

          作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò) 收藏
          /**************************************************************

          程序功能:通過RS485端口一次一次地收發(fā)數(shù)據(jù)
          ---------------------------------------------------------------
          測(cè)試說(shuō)明:用示波器觀察RS485端口A、B信號(hào)線

          本文引用地址:http://www.ex-cimer.com/article/201611/316427.htm

          上的波形或者用RS485接收器接收發(fā)回
          的字符,在串口助手上顯示。
          ***************************************************************/
          #include <msp430x14x.h>

          #define DRE_out P3DIR |= BIT3 //連接485芯片的DE,RE端口的IO設(shè)置為輸出狀態(tài)
          #define DE P3OUT |= BIT3 //設(shè)置485芯片處于發(fā)送狀態(tài)
          #define RE P3OUT &= ~BIT3 //設(shè)置485芯片處于接收狀態(tài)
          typedef unsigned char uchar;

          unsigned char string[8] ;
          uchar RX_flag;

          void Set_UART1(void);
          void PutString0(uchar *ptr);
          void Send1Char(uchar sendchar);
          void PutString(uchar *ptr);


          /****************主函數(shù)****************/
          void main(void)
          {
          unsigned int i;

          WDTCTL = WDTPW + WDTHOLD; //關(guān)閉看門狗
          P6DIR |= BIT2;P6OUT |= BIT2; //關(guān)閉電平轉(zhuǎn)換
          DRE_out;
          RE;
          Set_UART1();
          _EINT();

          while (1)
          {
          while( IFG2 & URXIFG1 ); //等待收到test命令字符
          if(RX_flag==1)
          {
          RX_flag=0;
          if(string[1]==a)
          {
          DE;
          for(i=0;i<3200;i++);
          PutString0("a11.5522.33e ");
          Send1Char(n);
          for(i=0;i<3200;i++);
          RE;
          //LPM3;
          }
          }

          }

          }
          /*******************************************
          函數(shù)名稱:Set_UART1
          功 能:設(shè)置MCU的UART1對(duì)應(yīng)的寄存器
          參 數(shù):無(wú)
          返回值 :無(wú)
          ********************************************/
          void Set_UART1(void)
          {
          P3SEL |= 0xC0; //將P3.6,P3.7選做UART1的通信端口
          ME2 |= UTXE1 + URXE1; //使能USART1的TXD和RXD
          UCTL1 |= CHAR; //選擇8-bit字符
          UTCTL1 |= SSEL0; //驅(qū)動(dòng)時(shí)鐘選擇ACLK
          UBR01 = 0x03; //波特率9600
          UBR11 = 0x00;
          UMCTL1 = 0x4a; //調(diào)整
          UCTL1 &= ~SWRST; //初始化UART狀態(tài)機(jī)
          IE2 |= URXIE1 ; // 中斷允許寄存器設(shè)置,接收中斷允許
          }


          //串口接收中斷,接收字符串指令.
          #pragma vector=USART1RX_VECTOR
          __interrupt void usart1_rx (void)
          {
          static uchar rxcount = 0;
          // LPM3_EXIT;
          if(RXBUF1 == e)
          {
          RX_flag =1;
          rxcount = 0;
          }
          else
          {
          string[rxcount++] = RXBUF1;
          }
          }

          /*******************************************
          函數(shù)名稱:Send1Char
          功 能:向PC機(jī)發(fā)送一個(gè)字符
          參 數(shù):sendchar--要發(fā)送的字符
          返回值 :無(wú)
          ********************************************/
          void Send1Char(uchar sendchar)
          {
          while (!(IFG2 & UTXIFG1)); //等待發(fā)送寄存器為空
          TXBUF1 = sendchar;

          }
          /*******************************************
          函數(shù)名稱:PutSting
          功 能:向PC機(jī)發(fā)送字符串并換行指令
          參 數(shù):ptr--指向發(fā)送字符串的指針
          返回值 :無(wú)
          ********************************************/
          void PutString(uchar *ptr)
          {
          while(*ptr != 看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();