新聞中心

        EEPW首頁(yè) > 嵌入式系統(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 來(lái)源:網(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型變量,再通過(guò)控件的SetOutput()函數(shù)把數(shù)據(jù)從串口發(fā)出去。以發(fā)送1幀數(shù)據(jù)為例,其的主要代碼如下:

        29.jpg

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

        30.jpg

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

        4 結(jié) 語(yǔ)

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

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



        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 庆城县| 青海省| 崇义县| 嵩明县| 恩施市| 隆昌县| 临泽县| 喀喇| 临西县| 曲阳县| 高邑县| 甘肃省| 河南省| 宁城县| 隆子县| 光泽县| 潼关县| 赣榆县| 宜兰县| 许昌县| 循化| 嘉荫县| 新平| 建瓯市| 六盘水市| 阜平县| 沈阳市| 新建县| 灵台县| 额敏县| 盐山县| 平山县| 河间市| 四子王旗| 阿拉善左旗| 中方县| 萝北县| 家居| 中西区| 邵阳市| 神农架林区|