新聞中心

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)閉