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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Windows環(huán)境下PC機(jī)與單片機(jī)串行通信的實(shí)現(xiàn)

          Windows環(huán)境下PC機(jī)與單片機(jī)串行通信的實(shí)現(xiàn)

          作者: 時(shí)間:2012-02-15 來源:網(wǎng)絡(luò) 收藏

          協(xié)議可知,數(shù)據(jù)包中的數(shù)是以十六進(jìn)制字符表示,因此在發(fā)送數(shù)據(jù)時(shí),對(duì)數(shù)據(jù)還需做一定的處理。即先將需要發(fā)送的字符串轉(zhuǎn)換為相應(yīng)的十六進(jìn)制字節(jié)串,然后再經(jīng)COleVariant類將其轉(zhuǎn)換為通用的VARIANT型變量,再通過控件的SetOutput()函數(shù)把數(shù)據(jù)從串口發(fā)出去。以發(fā)送1幀數(shù)據(jù)為例,其的主要代碼如下:

          29.jpg

          至于數(shù)據(jù)的接收,我們通過讓MSComm控件響應(yīng)OnComm事件來完成,通過ClassWizard加入其對(duì)事件的響應(yīng),當(dāng)有數(shù)據(jù)到達(dá)時(shí)便會(huì)通知 OnComm()函數(shù)去處理,從而數(shù)據(jù)的異步接收。由于接收的數(shù)據(jù)為變體數(shù)據(jù)VARIANT,因此,還必須做一些處理,具體代碼如下:

          30.jpg

          根據(jù)以上的方法,我們無需花很大的工作量,就能編寫出一個(gè)功能較強(qiáng)的串口程序。

          4 結(jié) 語

          按以上方法編寫的程序在 XP下由Microsoft VisualC++6.0編譯通過,并在機(jī)與遙控CCD相機(jī)控制子系統(tǒng)的過程中獲得了滿意的效果。同時(shí)通信的這種軟、硬件實(shí)現(xiàn)方法也可以用于機(jī)與其他外設(shè)之間的通信,實(shí)用范圍非常廣泛。

          參考文獻(xiàn)
          [1]希望圖書創(chuàng)作室.Visual C++6.0技術(shù)內(nèi)幕[M].第5版.北京:北京希望電子出版社,1999.
          [2]何立明.中級(jí)教程[M].北京:北京航空航天大學(xué)出版社,1999.
          [3]嘯峰工作室.在VCA++中利用ActiveX控件開發(fā)通信程序[DB].http://www.gjwtech.com/serialcomm.htm,2002.



          上一頁 1 2 下一頁

          評(píng)論


          相關(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); })();