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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 捷達汽車組合儀表的串行通訊的實現(xiàn)

          捷達汽車組合儀表的串行通訊的實現(xiàn)

          作者: 時間:2013-02-17 來源:網(wǎng)絡(luò) 收藏

          //檢查接收的數(shù)據(jù)是否準(zhǔn)備好,為1表示接收移位寄存器已收到一個完整的數(shù)據(jù),并送到接收緩沖器中
          if(intTemp>intWaitTime)
          {Error();}
          }
          if(!blnBeyondWaitTime)
          bytResult=InportB(intDRR);//intDRR=0x3f8
          return bytResult;
          }
          VOld TForml∷subSendByte(byte bytSend)
          {
          byte bytTemp;
          bytTemp=InportB(intLSR);
          //檢查發(fā)送緩沖器是否為空,1為空
          while((bytTemp0x20)!=0x20)
          bytTemp=InportB(intLSR);
          OutportB(0x3F8,bytSend); //發(fā)送緩沖器為空
          bytTemp=InportB(intLSR);
          //檢查發(fā)送移位寄存器是否為空,即發(fā)送緩沖器的數(shù)據(jù)是否送完
          while((bytTemp0x40)!=0x40)
          bytTemp=InportB(intLSR);
          bytTemp=InportB(intLSR);
          //檢查接收的數(shù)據(jù)是否準(zhǔn)備好,為1表示接收移位寄存器已收到一個完整的數(shù)據(jù),并送到接收緩沖器中
          while((bytTemp 0x1)!=0x1)
          bytTemp=InportB(intLSR);
          bytTemp=InportB(intDRR);
          //清空接收緩沖區(qū)中的發(fā)送數(shù)據(jù)
          }

          在此基礎(chǔ)上建立本通訊初始化的主函數(shù),如清單2所示:

          清單2:

          void TForml∷InitRS232(void)
          {
          String strTemp;//Dim strTemp As String
          byte bytTemp; //Dim bytTemp As Byte
          int intTemp; //Dim intTemp As Integer
          int i; //Dim I As Integer
          //Stepl:
          OutportB (intLCR,0x80);
          //輸出控制字,下面輸出波特串
          OutportB(intLSB,0x0); //低位
          OutportB(intMSB,0x5A); //高位
          OutportB(intLCR,0xA);
          //5 bit,l起始位,1奇偶位和1停止位
          OutportB(intIER,0); //抑制中斷
          strTemp="";
          subSendByte (0x * *) //發(fā)送建立通訊密碼
          //Step2:
          OutportB(intLCR,0x80);
          //輸出控制字,下面輸出波特率
          OutportB(intLSB,0xB);
          OutportB(intMSB,0x0);
          OutportB(intLCR,0x3);//10400,8,N
          strTemp=strTemp+""+IntToHex(bytReceiveByte(),2);
          //Step3:
          Receive the Low byte Of Key Word
          strTemp=strTemp+""+IntToHex(bytReceiveByte(),2);
          //Step4:
          Receive the High byte Of Key Word
          bytTemp=bytReceiveByte();
          strTemp=strTemp+""+IntToHex(bytTemp,2);
          //Step5:

          下面PC送高位字節(jié)的取反

          if(! blnBeyondWaitTime)
          subSendByte(byte(~bytTemp)); //byte
          else
          {Error();}
          //Step 6 Receive the block data
          if (! blnReceiveIDBlock(16)) //接收第1個ID塊,為16B
          {Error();}
          if (! blnReceiveIDBlock(16)) //接收第2個ID塊,為16B
          {Error();}
          if (! blnReceiveIDBlock(15)) //接收第3個ID塊,為15B
          {Error();}
          if (! blnReceiveIDBlock(9)) //接收第4個ID塊,為9B
          {Error();}
          //Cluster)> >PC
          subReceiveTheFifthBlock();
          String ResOfFT=strTestDataStream(strEnableFT);
          //儀表Epprom可讀寫命令
          if(ResOfFT==EmptyStr)
          {Error();}
          blnInitRS232=True;

          4 結(jié) 語

          本文采用C++Builder軟件平臺成功開發(fā)了儀表特殊串行口通訊程序,該系統(tǒng)在西門子VDO(蕪湖)公司生產(chǎn)線投入使用一年多,與采用快速通訊方式相比通訊傳輸性能穩(wěn)定,并具有了方便美觀的用戶界面,為實現(xiàn)儀表檢測設(shè)備奠定了基礎(chǔ),具有重要的應(yīng)用價值。(end)

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();