国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Delphi的串口通信程序設計方法初探

2018-03-22 00:32恒,宗
數(shù)字通信世界 2018年3期
關鍵詞:緩沖區(qū)控件字符

張 恒,宗 毅

(陜西省火箭軍工程大學,西安 710025)

1 串口通信與Delphi串口編程

1.1 串口通信

所謂的串行通信主要是將數(shù)據逐一傳輸,而并行通信使將按照字節(jié)等方式進行數(shù)據傳輸。在串行通信中,雖然其速度較為緩慢,但是具有較強的抗干擾能力,能夠實現(xiàn)較遠距離的傳輸,因此在通信領域的應用較為廣泛。而并行接口雖然在傳輸速度上占有一定的優(yōu)勢,但由于抗干擾能力較差,只適合于較短距離的傳輸,在實際應用中受到很大的阻礙,特別是在USB接口誕生以后,在速度和抗干擾能力上都呈現(xiàn)出較大的優(yōu)勢,使得并口傳輸逐漸淡出人們視野,串口通信的應用變得日漸廣泛。十幾個字符以后才會形成,產生上述問題的主要原因可能是受到Windows多任務操作使系統(tǒng)不響應的因素影響而成。

另外,在控件使用的過程中會發(fā)生接收數(shù)據不具體現(xiàn)象。例如,將控件中的屬性值設置為“1”后,將一組數(shù)據從發(fā)送端中傳出,數(shù)據為“AA EF CB DD C6 57 87 BB”,在緩沖區(qū)將該組數(shù)據定義為1024B,但是當其首次接收這組數(shù)據時,則顯示數(shù)據為“AA EF CB DD C6”,再次接收此組數(shù)據為“57 87 BB”,由此可見,這組數(shù)據并沒有被一次性接收,而是分成了兩批,產生此種現(xiàn)象的原因可能是受到系統(tǒng)操作的影響。對此,為了保障接收端中數(shù)據的完整性,應對所接收到的數(shù)據進行細致的檢測。

1.2 Delphi串口編程

2.2 利用Spcomm控件實現(xiàn)串口通信

在Delphi中最為顯著的優(yōu)勢便是功能強大,能夠支持多線程編程技術,便于實現(xiàn)串口通信。現(xiàn)階段,在Delphi基礎上進行串口通信的方式有很多種,例如MSComm控件、API函數(shù)、其他串口通信程序等。其中,API函數(shù)編寫的方式較為復雜,需要應用到大量的通信知識才能完成,但是當對數(shù)據實時性有嚴格要求時,API方式將處于首選地位。與其相比較來說,MSComm控件的設計方式較為簡單,并且還具有較強的豐富性,能夠與串口通信屬性相匹配,在本次研究中將采用此種方式進行串口通信設計。

2 基于Delphi的串口通信實現(xiàn)方式

在Delphi基礎上進行串口通信設計的方式分為四種,分別為使用Spcomm控件、MSComm控件、行間匯編ASM、其他串口通信程序。本文主要對前兩種串口通信方式進行設計。

2.1 利用MSComm控件實現(xiàn)串口通信

MSComm控件安裝于VB5.0當中,在使用之前,需要將其安裝到系統(tǒng)當中,由于其具有較強的豐富性,能夠與串口通信屬性相匹配,是串口操作功能變得更加多樣化,屬于十分具有較強可行性的控件之一,將其應用到串行通信當中,也使得操作變得更加便利。

當串口通信事件發(fā)生時,將會產生OnComm事件,如若事件類型為接收事件,則Comevent的數(shù)值為“2”,設計人員可以按照對數(shù)值的判斷來接收數(shù)據。通常情況下,在數(shù)據接收的過程中還應對控件的屬性進行設置,它能夠對緩沖區(qū)的字符數(shù)量進行接收之后,形成OnComm事件。但是在對空間屬性進行利用的過程中,通常會產生以下這種問題。例如,控件中的屬性值為“1”時,在緩沖區(qū)的任意字符中都將會利用控件形成OnComm事件。但事實上,OnComm事件并不是隨便接收到任意字符便能夠形成的,有時其在緩沖區(qū)中接收

在Delphi基礎上進行串口通信程序設計時,由于控件中的屬性均為變量,并且Delphi能夠實現(xiàn)屬性與字符類型之間的所以調換,因此可以直接在屬性值賦予給字符,這樣便能夠保障兩個屬性之間的簡單數(shù)據傳輸。在利用Spcomm控件進行串口通信的過程中,首先要在符合設計要求的基礎上建立程序設計框架和軟件界面,然后對通信對象、PC機、通信端口號等進行設置,最后根據相關需要對實現(xiàn)程序進行編寫、發(fā)送、接收,最終將通信端口關閉,其中主要的實現(xiàn)步驟有以下幾個方面。

一是按照具體需求建立軟件界面。二是對串口進行初始化設置,確定Spcomm控件屬性值。在本文的設計中,將其屬性值設置為波特率為19200,字節(jié)長度為8位,無奇偶校驗位,停止位一位。

(1)打開串口:procedure Tfcomm.for,showClick(Sender:TObject);begin comml.StartComm ;

(2)發(fā)送數(shù)據:procedure Tfcomm.BtnsdramClick(Sender:TOBject);var strsend:string.

(3) 接 收 數(shù) 據:procedure Tfcomm.CommlReceiveData(Sender:Tobject;Word)var strrcv;string.

(4)關閉窗口。

3 結束語

綜上所述,在Delphi基礎上進行串口通信設計的方式多種多樣,其中最為主要的兩種為Spcomm控件和MSComm控件,經過本文的闡述和驗證,使MSComm控件在串口通信中的問題得到有效解決,也充分體現(xiàn)出Spcomm控件在通信過程中具有較強的穩(wěn)定性和界面友好性。同時,在串口編程的過程中,該控件也能夠使設計周期有效的縮短,使系統(tǒng)的可靠性顯著提升,使得Delphi開發(fā)工具在串口編程中的應用變得更加廣泛。

猜你喜歡
緩沖區(qū)控件字符
基于.net的用戶定義驗證控件的應用分析
字符代表幾
一種USB接口字符液晶控制器設計
圖片輕松變身ASCⅡ藝術畫
HBM電子稱與西門子S7-200系列PLC自由口通訊
關于.net控件數(shù)組的探討
基于網絡聚類與自適應概率的數(shù)據庫緩沖區(qū)替換*
一類裝配支線緩沖區(qū)配置的兩階段求解方法研究
關鍵鏈技術緩沖區(qū)的確定方法研究
初涉緩沖區(qū)