PC機(jī)與嵌入式計(jì)算機(jī)系統(tǒng)串行通訊的硬軟件實(shí)現(xiàn)
OnComm事件是MSComm中的唯一的一個(gè)事件。無(wú)論何時(shí)當(dāng)CommEvent屬性的值變化時(shí),就產(chǎn)生OnComm事件,標(biāo)志發(fā)生了一個(gè)通訊事件或一個(gè)錯(cuò)誤。
在屬性中,根據(jù)筆者的調(diào)試經(jīng)驗(yàn)有以下兩點(diǎn)值得注意:
(1)Input屬性和InputMode屬性之間的關(guān)系:
InputMode屬性確定用Input屬性讀取的數(shù)據(jù)類型。如果設(shè)置InputMode為comInputModeText,Input屬性通過(guò)一個(gè)Variant返回文本數(shù)據(jù)。如果設(shè)置InputMode為comInputModeBinary,Input屬性通過(guò)一個(gè)Variant返回一二進(jìn)制數(shù)據(jù)的數(shù)組。因?yàn)椋鶕?jù)本系統(tǒng)的通訊協(xié)議要求,通訊中數(shù)據(jù)部分的數(shù)值可能會(huì)大于127,而comInputModeText方式采用ASCII編碼,其最大值只有127,所以要用comInputModeBinary方式。
?。?)Output屬性討論:Output屬性可以傳輸文本數(shù)據(jù)或二進(jìn)制數(shù)據(jù)。用Output屬性傳輸文本數(shù)據(jù),必須定義一個(gè)包含一個(gè)字符串的Variant。而字符串中的字符也是用ASCII編碼,這樣也不符合通訊協(xié)議的要求。所以要用Output屬性傳輸二進(jìn)制數(shù)據(jù),這樣才能與符合通訊協(xié)議的要求。發(fā)送二進(jìn)制數(shù)據(jù),必須傳遞一個(gè)包含字節(jié)數(shù)組的Variant到Output屬性。具體發(fā)送做法如下:
下面是一些重要的程序代碼:
4 結(jié)束語(yǔ)
本系統(tǒng)在實(shí)際應(yīng)用中,運(yùn)行穩(wěn)定,得到了用戶的好評(píng)。由嵌入式計(jì)算機(jī)和微機(jī)(PC)組成的系統(tǒng),通過(guò)發(fā)揮各自的長(zhǎng)處,并通過(guò)串行通訊相連,極大地提高了系統(tǒng)的穩(wěn)定性和可靠性,同時(shí)從成本的角度來(lái)考慮,它也是經(jīng)濟(jì)實(shí)惠的,高性價(jià)比的。
評(píng)論