版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Delphi教程第12章Delphi串口通信編程用Delphi實現(xiàn)串口通信,最常用的幾種方法為:使用API函數(shù)、使用組件(如MSComm等)或者在Delphi中調(diào)用其他串口通信程序。12.1
RS-232C標準所謂串行通信接口標準,是指串行通信接口與外設(shè)的信號連接標準。實際中常用的串行通信接口標準有3種:
RS-232C,RS-422A/423A和20mA電流環(huán)。常用的PC機都配置了RS-232C標準接口。RS-232C標準常簡稱為RS-232。RS-232C的定義包括電氣特性(如電壓
值)、機械特性(如接頭形狀)及功能特性(如腳位信號)等。串行通信接口基本功能是:在發(fā)送時,把
CPU送來的并行碼轉(zhuǎn)換成串行碼,逐位地依
次發(fā)送出去;在接收時,把發(fā)送過來的串行碼逐位地接收,組裝成并行碼,并行地發(fā)送給CPU去處理。這種串行到并行轉(zhuǎn)換的功能,常用硬件電路來實現(xiàn),這種硬件電路叫做串行通信接口。普通的Modem通常都是通過RS-232C串行口信號線與計算機連接。根據(jù)RS-232C標準規(guī)定,接口電路采用一對物理D型連接器:DTE設(shè)備應(yīng)該有一個D型插頭接口,DCE設(shè)備應(yīng)該有一個D型插座接口。D型連接可以是25芯(簡稱為DB25),也可以是9芯(簡稱為DB9)。RS-232C引腳分配如圖12-1所示。圖12-1
DB25與DB9引腳分配圖12.1.1信號連接RS-232C規(guī)定使用一種DB25連接器,其中20個腳作了定義,9、10、11、18、25未作定義。RS-232C串行口信號分為3類:傳送信號、聯(lián)絡(luò)信號和信號地。1.傳送信號(TxD和RxD)傳送信號是經(jīng)由(發(fā)送數(shù)據(jù)信號線,引腳2)傳送和(接收數(shù)據(jù)信號線,引腳3)接收的信
息格式即一個傳送單位(字節(jié))由起始位、數(shù)據(jù)位、奇偶校驗和停止位組成。2.聯(lián)絡(luò)信號(RTS、CTS、DTR、DSR、DCD和RI等6個信號)RTS(請求傳送,引腳4),是PC向Modem發(fā)出的聯(lián)絡(luò)信號。高電壓表不PC機請求向
Modem傳送數(shù)據(jù)。CTS(清除發(fā)送,引腳5),是Modem向PC機發(fā)出的聯(lián)絡(luò)信號。高電壓表示Modem響應(yīng)
PC發(fā)出的RTS信號,且準備向遠端Modem
發(fā)送數(shù)據(jù)。DTR(數(shù)據(jù)終端就緒,引腳),是PC向Modem發(fā)出的聯(lián)絡(luò)信號。高電壓表示PC機
處于就緒狀態(tài),本地Modem和遠端Modem之間可以建立通信信道。若為低電平,則強迫
Modem終止通信。DSR(數(shù)據(jù)裝置就緒,引腳),是Modem向PC發(fā)出的聯(lián)絡(luò)信號。它指出本地Modem的工作狀態(tài),高電壓表示Modem沒有處于測試通話狀態(tài),可以和遠端Modem建立通道。DCD(傳送檢測,引腳),是Modem向PC
發(fā)出的狀態(tài)信號,高電壓表示本地DCE接收遠端Modem發(fā)來的載波信號。RI(鈴指示,引腳),Modem向PC發(fā)出的狀態(tài)信號。高電壓表示本地Modem收到遠端
Modem發(fā)來的振鈴信號。3.SG(信號地)SG(信號地,引腳)為相連的PC和Modem提供同一電勢參考點。12.1.2握手DTE和DCE之間要實現(xiàn)雙向通信,至少需要3條信號線:TxD使數(shù)據(jù)從DTE到ECE。RxD使數(shù)據(jù)從ECE到ETE,SG為信號地。必須使用握手信號,它提供了一種控制數(shù)據(jù)流的方法,即接收設(shè)備可以控制發(fā)送設(shè)備的數(shù)據(jù)發(fā)送。在異步串行通信中,這稱之為握手(handshaking)或流量控制(flowcontrol)。握手控制可以具體分為硬件握手(硬件流控)和軟件握手(軟件流控)。1.硬件握手硬件握手是使用專門的握手電路去控制數(shù)據(jù)的傳輸。當接收設(shè)備準備好之后,就通過專用的握手電路傳送一個正電壓給發(fā)送設(shè)備,指示發(fā)送設(shè)備數(shù)據(jù)。如果接收傳送一個負電壓給發(fā)送設(shè)備,則指示發(fā)送設(shè)備停止發(fā)送數(shù)據(jù)。為了完成數(shù)據(jù)通信需要有3類電路:數(shù)據(jù)線、信號線和握手線。(1)DTE到DCE為了控制DTE的發(fā)送數(shù)據(jù),DCE使用DSR信號作為主握手信號去通知DTE已做好接收數(shù)據(jù)庫的準備。當通知DTE暫停發(fā)送數(shù)據(jù)時,置DSR無效。DCE到DTE為了控制DCE的數(shù)據(jù)發(fā)送,DTE使用DTR信號作為主握手信號去通知DCE已做好接收數(shù)據(jù)的準備。當通知DCE暫停發(fā)送數(shù)據(jù)時,置DTR無效。DTE還使用RTS信號作為第二握手信號控制DCE設(shè)備。僅當這兩條握手線都有效時,
DCE才發(fā)送數(shù)據(jù)。雙向通信雙向通信中只使用主握手線,則共需要5條信號線:TxD、RxD、DSR、DTR和SG。如果還使用第二握手線,則共需要7條信號線。為了使DCE能向DTE提供更多信息,通常還使用RI和DCE兩條信號線。這樣一個完整的異步串行通信必需的就是這9條信號線。2.軟件握手軟件握手的原理機制與硬件握手基本相同,不同的握手信號是在數(shù)據(jù)線(TxD和RxD)上進行傳送的,而不是在專門握手線上傳送。這是因為軟件握手信號是由特殊字符組成的,所以傳送這些字符必須使用數(shù)據(jù)電路,而不
是使用專門握手電路。這種方法常用在直接
連接或通過Modem連接的兩臺計算機之間進
行雙向通信的場合。RIDTRDCTSGDSRRTSCTSRxDTxD2345678202223456782022圖12-2有握手功能的雙向通信軟件握手最常用的協(xié)議是XON/XOFF協(xié)議。該協(xié)議主要解決通信雙方處理速度不區(qū)配的問題,協(xié)議規(guī)定發(fā)送XOFF表示暫停發(fā)送數(shù)據(jù),發(fā)送XON表示繼續(xù)發(fā)送數(shù)據(jù)。3.硬件與軟件相結(jié)合的握手為了綜合硬件握手和軟件握手的好處,可以采用硬件和軟件相結(jié)合的握手控制。假設(shè)
DTE設(shè)備為計算機,DCE設(shè)備為Modem,兩臺計算機之間通過Modem經(jīng)電話線連接,則此時計算機與Modem之間可采用硬件握手方法,而兩臺計算機之間可以使用軟件握手方法進行聯(lián)系。12.1.3微機的RS-232C接口個人計算機的RS-232C接口名稱有多個:
RS-232C口、串口、通信口、COM口、異步口等。目前DOS3.3以上版本和Windows
3.2/98/NT最多支持4個串口:COM1、COM2、COM3和COM4。它們所占用的I/O口地址和中斷號見表:為一更好地說明RS-232C接口電路的實際工作情況,下面以應(yīng)答呼叫過程為例,具體分析其信號間的交互關(guān)系。所謂應(yīng)答呼叫過程,即指Modem從接收到振鈴信號開始,到數(shù)據(jù)傳輸結(jié)束后Modem和DTE恢復到原來的空閑狀態(tài)為止的過程。(1)數(shù)據(jù)終端DTE的控制軟件持續(xù)監(jiān)視振鈴指示(RI),等待該信號有效。引腳連線如圖:CTS,清除發(fā)送DSR,DCE準備就緒SG,信號地DCT,載波檢測DTR,DTE準備就緒RI,振鈴指示RTS,請求反送RxD,接收數(shù)據(jù)TxD,發(fā)送數(shù)據(jù)2345678202223456782022圖12-3DTE和Modem的引腳邊線響鈴后,Modem在振鈴脈沖期間發(fā)出振鈴指示信號(RI有效),在振鈴脈沖間隔期間,振鈴指示信號有效。即隨著振鈴脈沖的有無,
RI信號ON/OFF交替變化。DTE的通信控制軟件在檢測到振鈴指示后,開始通過計算機振鈴指示ON/OFF變化的次
數(shù)對振鈴進行計數(shù)。當達到程序預置好的振鈴數(shù)時,控制軟件發(fā)出數(shù)據(jù)終端就緒信號(DTR有效),迫使Modem進入摘機狀態(tài),開始應(yīng)答電話。Modem在等待一小段時間后,自動地發(fā)送它的應(yīng)答載波信號。同時Modem發(fā)出數(shù)據(jù)設(shè)備就緒信號(DSR信號有效),通知DTE已完
成所有準備工作,正在等待對方載波信號。在DTE發(fā)出數(shù)據(jù)終端就緒信號(DTR有效)期間,DTE的控制軟件監(jiān)視數(shù)據(jù)設(shè)備就緒信號(DSR是否有效)。當DSR變?yōu)镺N狀態(tài)后,DTE便知道了Modem已準備建立數(shù)據(jù)鏈路,于是DTE開始監(jiān)視載波檢測(DCD)信號,以檢查數(shù)據(jù)鏈路是否已建立。當主叫Modem的載波信號出現(xiàn)在電話線上時,被叫Modem就發(fā)出載波檢測信號(DCD),通知DTE已建立數(shù)據(jù)鏈路。在數(shù)據(jù)鏈路連接期間,發(fā)送數(shù)據(jù)(TxD)和接收數(shù)據(jù)(RxD)線上即開始了全雙工通信。同時,DTE仍監(jiān)視著載波檢測(DCD)信號,以確定數(shù)據(jù)鏈路是否連接。(8)數(shù)據(jù)傳輸結(jié)束后,DTE使數(shù)據(jù)終端就緒信號(DTE無效),Modem撤消載波信號并以載波檢測(DCD)和數(shù)據(jù)設(shè)備就緒(DSR)信號無效給予響應(yīng)。數(shù)據(jù)鏈路釋放后,Modem和DTE準備下一次接收或作另一次呼叫。12.2串行口API函數(shù)12.2.1常用的串行通信操作函數(shù)
1.CreateFileCreateFile創(chuàng)建或打開一下的對象并返回句柄完整定義:Handle
CreateFile(LPCTSTR
lpFileName,//文件名DWORD
dwDesireAccess,//訪問模式(讀/寫)DWORD
dwShareMode,
//共享模式LPSECURITY_ATTRIBUTES
lpSecurityAttributes,//安全屬性DWORD
dwCreationDistribution,//文件已經(jīng)存在或不存在時的處理方法DWORD
dwFlagsAndAttributes,//文件屬性,對于串口來說有意義的屬性只有FILE_FLAG_OVERLAPPED,表示端口的I/O可以在后臺進行(后臺IO也叫異步IO)HANDLE
hDemplateFile//復制制定文件的擴展屬性);2.CloseHandleCloseHandle函數(shù)關(guān)閉一個已打開的對象句柄,完整定義:BOOL
CloseHandle(HANDLE
hObject
//句柄);3.SetupCommSetupComm為通信設(shè)備初始化參數(shù)(設(shè)置通信緩沖區(qū)的大?。?,完整定義;BOOL
SetupComm(HANDLE
hFile,//句柄DWORD
dwInQueue,//輸入緩沖區(qū)的大小DWORD
dwOutQueue//輸出緩沖區(qū)的大小);4.ReadFileReadFile同步或異步從文件讀取數(shù)據(jù),在讀之前可能要調(diào)整文件指針的位置,完整定義:BOOL
ReadFile(HANDLE
hFile,//句柄LPVOID
lpBuffer,//接收數(shù)據(jù)的緩沖區(qū)地址DWORD
nNumberOfBytesToRead,//讀取的字節(jié)數(shù)LPDWORD
lpNumberOfBytesRead,//讀取字節(jié)數(shù)的地址LPOVERLAPPED
lpOverlapped//當打開文件制定dwFlagsAndAttributes參數(shù)為FILE_FLAG_OVERLAPPED時,這個參數(shù)就必須應(yīng)用一個特殊的結(jié)構(gòu),結(jié)構(gòu)中定義一次異步讀操作。否則,該參數(shù)應(yīng)置為空。);5.WriteFileWriteFile同步或異步寫數(shù)據(jù)到文件中,在寫之前可能要調(diào)整文件指針的位置,完整定義:BOOL
WriteFile(HANDLE
hFile,//句柄LPCVIOD
lpBuffer,//指向緩沖區(qū)的數(shù)據(jù)DWORD
nNumberOfBytesToWrite,//要寫的字節(jié)數(shù)LPDWORD
lpNumberOfBuffersWritten,//返回實際寫的字節(jié)數(shù)LPOVERLAPPED
lpOverlapped//當打開文件指定dwFlagsAndAttributes參數(shù)為FILE_FLAG_OVERLAPPED時,這個參數(shù)就必須引用一個特殊的結(jié)構(gòu),結(jié)構(gòu)中定義一次異步寫操作。否則,該參數(shù)應(yīng)置為空。);6.Set
CommStateSetCommState用制定的DCB結(jié)構(gòu)設(shè)置通信參
數(shù),將重新初始化硬件和控制設(shè)置,但不會清空輸入輸出緩沖區(qū)。DCB結(jié)構(gòu)中包含波特率、數(shù)據(jù)位、校驗位、停止位和流控制方式等信息。完整定義:BOOL
SetCommState(HANDLE
hFile,//句柄LPDCB
lpDCB//指向硬件控制塊);7.GetCommStateGetCommState返回當前通信參數(shù)的DCB結(jié)構(gòu)。
DCB結(jié)構(gòu)中包含波特率、數(shù)據(jù)位、校驗位、停止位和流控制方式等信息,完整定義:BOOL
GetCommState(HANDLE
hFile,//句柄LPDCB
lpDCB//指向硬件控制塊);ClearCommErrorClearCommError清除串口錯誤并獲取當前狀態(tài)(可以返回接收緩沖區(qū)中處于等待狀態(tài)的字節(jié)數(shù))。完整定義:BOOL
ClearCommError(HANDLE
hFile,//句柄LPDWORD
lpErrors,//接收錯誤代碼LPCOMSTAT
lpStat//指向通信設(shè)備的狀態(tài)緩沖區(qū));BuildCommDCBBuildCommDCB函數(shù)用制定的設(shè)備控制串填充DCB結(jié)構(gòu),設(shè)備控制串可用相應(yīng)的模式控制命令得到。要使設(shè)置生效,還需調(diào)用SetCommState。完整定義:BOOL
BuildCommDCB(LPCTSTR
lpDef,//指向設(shè)備控制串LPDCB
lpDCB//指向設(shè)備控制塊);10.BuildCommDCBAndTimeoutsBuildCommDCBAndTimeouts函數(shù)用指定的設(shè)備控制串填充DCB結(jié)構(gòu),并設(shè)置超時值、未超時值。設(shè)備控制串可用相應(yīng)的模式控制命令得到。這個函數(shù)綜合了BuildCommDCB和SetCommTimeouts兩個函數(shù),完整定義:BOOL
BuildCommDCBAndTimeouts(LPCTSTR
lpDef,//設(shè)備控制串LPDCB
lpDCB,//設(shè)備控制塊LPCOMMTIMEOUTS
lpCommTimeouts//超時結(jié)構(gòu));11.ClearCommBreakClearCommBreak函數(shù)恢復發(fā)送緩沖區(qū)中的數(shù)據(jù)傳送,并把線路置為nonbreak狀態(tài)(可參閱SetCommBreak和TransmitCommChar)。完整定義:BOOL
ClearCommBreak(HANDLE
hFile//句柄);12.CommConfigDialogCommConfigDialog函數(shù)顯示配置端口的對話框,完整定義:BOOL
CommConfigDialog(LPTSTR
lpszName,//設(shè)備名字字符串HWND
hWnd,//窗口句柄LPCOMMCONFIG
lpCC//Comm配置結(jié)構(gòu));13.DeviceIoControlDeviceIoControl函數(shù)直接發(fā)送控制指令到指定的設(shè)備,讓設(shè)備執(zhí)行特定的操作。完整定義:BOOL
DeviceIoControl(HANDLE
hDevice,//句柄DWORD
dwIoControlCode,//控制指令LPVOID
lpInBuffer,//指定指令所需的數(shù)據(jù)緩沖區(qū)DWORD
nInBufferSize,//lpInBuffer緩沖區(qū)的大小LPVOID
lpOutBuffer,//指定指令返回的數(shù)據(jù)緩沖區(qū)DWORD
nOutBufferSize,//lpOutBuffer緩沖區(qū)的大小LPDWORD
lpBytesReturned,//lpOutBuffer緩沖區(qū)返回數(shù)據(jù)的實際大小LPOVERLAPPED
lpOverlapped//指向Overlapped結(jié)構(gòu));14.EscapeCommFunctionEscapeCommFunction函數(shù)直接讓設(shè)備執(zhí)行指定的擴展操作,用于完全控制端口。完整定義:BOOL
EscapeCommFunction(HANDLE
hFile,//句柄DWORD
dwFunc//要執(zhí)行的擴展功能);GetCommConfigGetCommConfig函數(shù)獲得當前設(shè)備的設(shè)置,王政定義:Bool
GetCommConfig(HANDLE
hCommDev,//句柄LPCOMMCONFIG
lpCC,//Comm配置結(jié)構(gòu)地址LPDWORD
lpdwSize//緩沖區(qū)大小);GetCommMaskGetCommMask函數(shù)返回指定的設(shè)備的事件掩碼,完整定義:BOOL
GetCommMask(HANDLE
hFile,//句柄LPDWORD
lpEvtMask//返回的事件掩碼);GetCommModemStatusGetCommModemStatus函數(shù)返回Modem的控制寄存器的值,完整定義:BOOL
GetCommModemStatus(HANDLE
hFile,//句柄LPWORD
lpModemStat//控制寄存器的值);GetCommPropertiesGetCommProperties函數(shù)返回指定設(shè)備的屬性。在調(diào)用SetCommState之前常用此函數(shù)判斷是否支持指定的設(shè)置值,例如,是否支持的波特率等。完整定義:BOOL
GetCommProperties(HANDLE
hFile,//句柄LPCOMMPROP
lpCommProp//屬性結(jié)構(gòu));19.GetCommStateGetCommState函數(shù)返回指定設(shè)備當前設(shè)置的設(shè)備控制塊,完整定義:BOOL
GetCommState(HANDLE
hFile,//句柄
LPDCB
lpDCB//設(shè)備控制塊);20.GetCommTimeoutsGetCommTimeouts函數(shù)返回指定設(shè)備的所有讀寫操作超時值,完整定義:BOOL
GetCommTimeouts(HANDLE
hFile,//句柄LPCOMMTIMEOUTS
lpCommTimeouts//超時結(jié)構(gòu));21.GetDefaultCommConfigGetDefaultCommConfig函數(shù)返回通信設(shè)備的默認值配置,完整定義:BOOL
GetDefaultCommConfig(LPCSTR
lpszName,//設(shè)備名字符串LPCOMMCONFIG
lpCC,//配置結(jié)構(gòu)LPDWORD
lpdwSize
//結(jié)構(gòu)的大小);22.PurgeCommPurgeComm函數(shù)取消輸入或輸出緩沖區(qū)的所有字符,并中止懸而未決的讀或?qū)懖僮?,完整定義:BOOL
PurgeComm(HANDLE
hFile,//句柄DWORD
dwFlags//取消操作的參數(shù));SetCommBreakSetCommBreak函數(shù)暫停發(fā)送緩沖區(qū)的數(shù)據(jù)傳送,并把線路為break狀態(tài),直到調(diào)用ClearCommBreak時才恢復。完整定義:BOOL
SetCommBreak(HANDLE
hFile//句柄);SetCommConfigSetCommConfig函數(shù)設(shè)置通信設(shè)備的當前配置,完整定義:BOOL
SetCommConfig(HANDLE
hCommDev,//句柄
LPCOMMCONFIG
lpCC,//配置結(jié)構(gòu)DWORD
dwSize
//結(jié)構(gòu)的大小);25.SetCommMaskSetCommMask函數(shù)設(shè)置指定設(shè)備的事件掩碼。調(diào)用此函數(shù)后,需要再調(diào)用WaitCommEvent來等待事件的產(chǎn)生。完整定義:BOOL
SetCommMask(HANDLE
hFile,//句柄
DWORD
dwEvtMask//事件掩碼);SetCommTimeoutsSetCommTimeouts函數(shù)設(shè)置讀和寫操作的超時值,完整定義:BOOL
SetCommTimeouts(HANDLE
hFile,//通信設(shè)備句柄LPCOMMTIMEOUTS
lpCommTimeouts//超時結(jié)構(gòu));SetDefaultCommConfigSetDefaultCommConfig函數(shù)設(shè)置通信設(shè)備的默認配置,完整定義:BOOL
SetDefaultCommConfig(LPCSTR
lpszName,//設(shè)備名字符串LPCOMMCONFIG
lpCC,//配置結(jié)構(gòu)DWORD
dwSize//結(jié)構(gòu)的大小);28.TransmitCommCharTransmitCommChar函數(shù)向指定設(shè)備發(fā)送字符,該字符將優(yōu)先于輸出緩沖區(qū)中的數(shù)據(jù)。一般情況下,先調(diào)用SetCommBreak,再調(diào)用此函數(shù),最后調(diào)用ClearCommChar,用于優(yōu)先反送指定字符。完整定義:BOOL
TransmitCommChar(HANDLE
hFile,//句柄
Char
cChar//發(fā)送的字符);29.WaitCommEventWaitCommEvent函數(shù)等待指定設(shè)備的事件發(fā)生。一系列的事件被此函數(shù)監(jiān)視,包括設(shè)備相關(guān)的事件掩碼,可以同步或異步方式進行。完整定義:BOOL
WaitCommEvent(HANDLE
hFile,//句柄LPDWORD
lpEvtMask,//要處理的事件LPOVERLAPPED
lpOverlapped,//Overlapped結(jié)構(gòu),用于異步方式);12.3
MSComm控件12.3.1
MSCom安裝MSCcomm組件是Microsoft
Visual
Studio配帶的ActiveX組件,一般安裝MicrosoftVisual
Studio后這些文件會自動生成,然后在Delphi中安裝MSComm控件。步驟如下:先打開Delphi7.0集成開發(fā)環(huán)境,選擇菜單
“Component”中的“Import
ActiveXControl”命令,在“Import
AcitiveX”選項卡內(nèi)選擇“Microsoft
Comm
Control
6.0”項。單擊“Install”按鈕安裝MSComm控件,安裝后在“ActiveX”組件板中出現(xiàn)
MSComm圖標,即可被使用。MSCOMM32.OCX可以按如下兩種方式注冊:第一種方式:點擊【開始】|【運行】,在運行命令欄中填入如下命令:Regsvr32
c:\windows\system\mscomm32.ocx第二種方式:打開記事本輸入以下內(nèi)容,并且保存未REG的擴展名,雙擊此文件也可以進行注冊,REGEDIT4[HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905]@=”
kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun”12.3.2
MSComm控件方法MSComm控件提供下列兩種處理通信的方式:事件驅(qū)動通信是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時需要得到通知。在程序的每個關(guān)鍵功能之后,可以通過檢查
CommEvent屬性的值來查詢事件和錯誤。如
果應(yīng)用程序較少,并且是自保持的,這種方法可能是更可取的。每個MSComm控件對應(yīng)著一個串行端口。如果應(yīng)用程序需要訪問多個串行端口,必須使用多個MSComm控件。可以在Windows“控制面板”中改變端口地址和中斷地址。盡管MSComm控件有很多重要的屬性,但首先必須熟悉幾個屬性。CommPortSettings設(shè)置并返回通信端口號。以字符串的形式設(shè)置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位。PortOpen
設(shè)置并返回通信端口的狀態(tài),也可以打開和關(guān)閉端口。InputOutput從接收緩沖區(qū)返回和刪除字符。向傳輸緩沖區(qū)寫一個字符串。12.3.3
MSComm控件屬性通信MSComm控件提供了27個關(guān)于通信控制方面的屬性和5個標準屬性。1.Break屬性描述:設(shè)置或清除中斷信號的狀態(tài)。該屬性在設(shè)計時無效。語法:[form
.]
MSComm.Break[:={True|False}]設(shè)置為:TrueFalse設(shè)置中斷信號狀態(tài)清除中斷信號狀態(tài)2.CDHolding屬性通過查詢Carrier
Detect
(CD)信號線的狀態(tài)確定當前是否有傳輸。語法:[form.]MSComm.CDHolding[:={True|False}]CDHolding屬性的設(shè)置值為:TrueFalseCarrier
Detect信號線為高電平
Carrier
Detect信號線為低電平CommID屬性返回一個說明通信設(shè)備的句柄。該屬性在設(shè)計時無效,在運行時為只讀。語法:[form.]MSComm.CommIDCommEvent屬性返回最近的通信事件或錯誤。該屬性在設(shè)計時無效,在運行時為只讀。語法:[form.]MSComm.CommEvent5.CommPort屬性設(shè)置并返回通信端口號。語法:[form
.]
MSComm.CommPort[:=value]6.CTSHolding屬性確定是否可通過查詢Clear
To
Send
(CTS)信號線的狀態(tài)發(fā)送數(shù)據(jù)。語法:[form
.]
MSComm.CTSHolding[:={True|False}]CTSHolding屬性的設(shè)置值為:TrueFalseClear
To
Send信號線為高電平
Clear
To
Send信號線為低電平7.DSRHolding屬性確定Data
Set
Ready
(DSR)信號線的狀態(tài)。語法:[form.]MSComm.CSRHolding[:={True|False}]
CSRHolding屬性返回以下值:TrueFalseData
Set
Ready信號線為高電平
Data
Set
Ready信號線為低電平8.DTREnable屬性確定在通信時是否使Data
Terminal
Ready(DTR)信號線有效。語法:[form.]MSComm.DTREnable[:={True|False}]DTREnable屬性設(shè)置值:True
Data
Terminal
Ready信號線有效False
Data
Terminal
Ready信號線無效(缺?。?.EOFEnable屬性EOFEnable屬性確定在輸入過程中MSComm控件是否尋找文件結(jié)尾(EOF)字符。語法:[form.]MSComm.EOFEnable[:={True|False}]value的設(shè)置值:當EOF字符找到時OnComm事件被激True活。False
當EOF字符找到時OnComm事件不被激活(缺?。?。10.Handshaking屬性設(shè)置并返回硬件握手協(xié)議。語法:[form.]MSComm.Handshaking[:=value]11.InBufferCount屬性返回接收緩沖區(qū)中等待的字符數(shù)。該屬性在設(shè)計時無效。語法:[form
.]
MSComm.
InBufferCount[:=value]12.InBufferSize屬性設(shè)置并返回接收緩沖區(qū)的字節(jié)數(shù)。語法:[form.]MSComm.InBufferSize[:=value]13.Input屬性返回并刪除接收緩沖區(qū)中的數(shù)據(jù)流。該屬性在設(shè)計時無效,在運行時為只讀。語法:[form.]
MSComm.Input14.InputLen屬性設(shè)置并返回Input屬性確定被Input屬性讀取的字符數(shù)。語法:[form.]MSComm.InputLen
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度航空航天領(lǐng)域新風系統(tǒng)研發(fā)合同3篇
- 二零二五版學校學生宿舍安全與消防管理合同3篇
- 2025版高端汽車零部件外協(xié)加工協(xié)議書3篇
- 蘇州學校立體綠化施工方案
- 物業(yè)管理合同示范文本
- 二零二五年度高端定制家具制作與安裝合同3篇
- 做生意合伙合同協(xié)議書
- 二零二五年度社區(qū)服務(wù)小程序設(shè)計與運營合作協(xié)議3篇
- 房屋裝修合同協(xié)議書范文
- 銅仁化工換熱器施工方案
- 云南省普通高中學生綜合素質(zhì)評價-基本素質(zhì)評價表
- 2024年消防產(chǎn)品項目營銷策劃方案
- 旅游公司發(fā)展規(guī)劃
- 聞道課件播放器
- 03軸流式壓氣機b特性
- 五星級酒店收入測算f
- 大數(shù)據(jù)與人工智能ppt
- 人教版八年級下冊第一單元英語Unit1 單元設(shè)計
- GB/T 9109.5-2017石油和液體石油產(chǎn)品動態(tài)計量第5部分:油量計算
- 邀請函模板完整
- 2023年江蘇省南京市中考化學試卷2
評論
0/150
提交評論