freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

delphi串口通信編程-在線瀏覽

2024-08-25 22:36本頁(yè)面
  

【正文】 簡(jiǎn)稱 信號(hào)功能 1 載波檢測(cè) DCEDTE DCD( Data Carrier Detect) 數(shù)據(jù)鏈路已連接 2 接收數(shù)據(jù) DCEDTE RxD( Receive) DTE接收串行數(shù)據(jù) 3 發(fā)送數(shù)據(jù) DTEDCE TxD( Transmit) DTE發(fā)送串行數(shù)據(jù) 4 數(shù)據(jù)終端就緒 DTEDCE DTR( Data Terminal Ready) DTE準(zhǔn)備準(zhǔn)備就緒 5 信號(hào)地 SG( Signal Ground) 公共信號(hào)地 6 數(shù)據(jù)設(shè)備就緒 DCEDTE DSR( Data Set Ready) DCE準(zhǔn)備就緒,可以接收 7 請(qǐng)求發(fā)送 DTEDCE RTS( Request to Send) DTE通知 DCE請(qǐng)求發(fā)送 8 清除發(fā)送 DCEDTE CTS( Clear to Send) DCE已切換到接收模式 9 振鈴指示 DCEDTE RI( Ring Indicator) 通知 DTE有遠(yuǎn)程呼叫 一次應(yīng)答呼叫過(guò)程 Modem從接收到振鈴信號(hào)開(kāi)始,到數(shù)據(jù)傳輸結(jié)束 Modem和 DTE恢復(fù)到原來(lái)的空閑狀態(tài)為止的過(guò)程。 ?DTE的通信控制軟件在檢測(cè)到振鈴指示后,開(kāi)始通過(guò)計(jì) 算機(jī)振鈴指示的 ON和 OFF狀態(tài)的變化次數(shù)來(lái)進(jìn)行計(jì)數(shù)。同時(shí) Modem發(fā)出數(shù)據(jù)設(shè)備就緒信號(hào)( DSR),通 知 DTE已經(jīng)完成所有準(zhǔn)備工作,正在等待對(duì)方的載波信 號(hào) ?在 DTE發(fā)出數(shù)據(jù)終端就緒信號(hào)( DTR)期間, DTE的控制軟件監(jiān)視數(shù)據(jù)設(shè)備就緒信號(hào)( DSR)是否有效,當(dāng)DSR為 ON狀態(tài)后, DTE便知道 Modem已準(zhǔn)備建立數(shù)據(jù)鏈路,于是 DTE開(kāi)始檢測(cè)載波信號(hào)( DCD),以檢查數(shù)據(jù)鏈路是否已經(jīng)建立 ?當(dāng)主叫 Modem的載波信號(hào)出現(xiàn)在電話線上時(shí),被叫Modem發(fā)出載波信號(hào)( DCD),以檢查數(shù)據(jù)鏈路是否已經(jīng)建立 ?在數(shù)據(jù)鏈路連接期間,發(fā)送數(shù)據(jù)( TxD)和接收數(shù)據(jù)( RxD)線上即開(kāi)始了全又工通信。數(shù)據(jù)候鏈路釋放后, Modem和 DTE返回到初始狀態(tài)。原始信號(hào)經(jīng)過(guò)不一樣的波特率取樣后,所得的結(jié)果完全不一樣,如取樣速度只有原來(lái)一半時(shí),信號(hào)被跳著取樣,數(shù)據(jù)因此錯(cuò)誤。 起始位及停止位 ?異步串行傳輸時(shí)需要 ?當(dāng)發(fā)送端要開(kāi)始傳送數(shù)據(jù)時(shí),便將傳輸線上的電壓由低電位提升至高電位,而當(dāng)傳送結(jié)束后,再將電壓降至低電壓。 校驗(yàn)位的檢查 ?用來(lái)檢查所傳送數(shù)據(jù)正確性的一種核對(duì)碼,其中又分成奇校驗(yàn)( Odd)及偶校驗(yàn)( Even) ?串行通信上的字符數(shù)據(jù)格式 起始位 +傳送字符 +校驗(yàn)位 +停止位 模式及流量 ?工作模式 ?硬件握手 ?軟件握手 工作模式 當(dāng)計(jì)算機(jī)在進(jìn)行數(shù)據(jù)的傳送與接收時(shí),傳輸線上的數(shù)據(jù) 流動(dòng)情況可分為 3種: ? 單工:傳輸線上的數(shù)據(jù)流動(dòng)只有一個(gè)方向 ? 半雙工:數(shù)據(jù)流動(dòng)是雙向,但同一時(shí)間只能一個(gè)方向行進(jìn) ? 全雙工:傳輸線同時(shí)具有兩個(gè)方向的傳輸能力 RS485屬于半雙工, RS232屬于全雙工(引腳在設(shè)計(jì)時(shí)就是接收與傳送是分屬兩個(gè)不同的引腳與線路。 握手 握手信號(hào):提供一種控制數(shù)據(jù)流的方法,即接收設(shè)備可以控制發(fā)送設(shè)備的數(shù)據(jù)發(fā)送。 在異步串行通信中,這稱之為握手( handshaking)或流量控制( flow control)。 握手控制可以具休分為硬件握手和軟件握手。 當(dāng)接收設(shè)備準(zhǔn)備好之后,就通過(guò)專用的握手電路傳送一 個(gè)正電壓給發(fā)送設(shè)備,指示發(fā)送設(shè)備發(fā)送數(shù)據(jù)。 硬件握手用到 DSR、 CTS、 DTR、 RTS4條硬件線路,其中 DTR、 RTS指的是計(jì)算機(jī)上的 RS232端;而 DSR、CTS則是指被控制的設(shè)備端。 其操作流程與硬件握手類似。 跳線:欲將數(shù)據(jù)從一個(gè)地方傳送至另一個(gè)地方,其實(shí)只要使用第 2引腳、第 3引腳與第 5引腳就可以形成一個(gè)最簡(jiǎn)單的通信線路。 跳線的意義:甲方傳送的數(shù)據(jù)必定到乙方的接收信道;而乙方的傳送數(shù)據(jù)則會(huì)到達(dá)甲方的接收信道,雙方的傳送與接收形成一個(gè)完整的回路。 ? CRC(C yclic Redundancy Check Code循環(huán)冗余校驗(yàn)碼) 將欲傳輸?shù)臄?shù)據(jù)塊視為一堆連續(xù)位所構(gòu)成的一個(gè)整數(shù)值,并將此數(shù)值除一個(gè)特定的除數(shù)。傳送 與接收的雙方只要針對(duì)其固定的檢查方法分別進(jìn) 行運(yùn)算,比較后只要雙方均一致,即正確;若不 一致,數(shù)據(jù)重傳。 校驗(yàn)錯(cuò)誤 指數(shù)據(jù)在傳輸中被破壞,至少可以說(shuō)明設(shè) 備在奇偶校驗(yàn)位類型設(shè)置不同或者字長(zhǎng)不 同。 這個(gè)類型的錯(cuò)誤,通常是在沒(méi)有接收到要求的停止位時(shí)出現(xiàn)。以串口通信來(lái)說(shuō),就是 COM COM2等 ? dwDesiredAccess :讀寫模式設(shè)備。一般不共享,設(shè)為 0 ? lpSecurityAttribute: 傳入一個(gè) Security Attribute結(jié)構(gòu),指明其返回的 Handle是否可以被子程序所繼承。在打開(kāi)設(shè)備時(shí),此參數(shù)設(shè)定為 OPEN_EXISTING ? dwAttrsAndFlags :文件屬性及相關(guān)標(biāo)志。 hObject:要關(guān)閉對(duì)象的句柄 當(dāng)函數(shù)返回 True時(shí),表示關(guān)閉動(dòng)作完成。 ComName:array[0..4] of char。 Begin ComName:=?COM1?。 if FHandleINVALID_HANDLE_VALUE then showmessage(?串口打開(kāi)成功!’ ) Else showmessage(?串口打開(kāi)失敗!’ ); CloseHandle(FHandle)。 GetCommState BOOL GetCommState( HANDLE hFile, // 通信設(shè)備的句柄 LPDCB lpDCB // 設(shè)備控制塊結(jié)構(gòu)的地址 )。 //DCB結(jié)構(gòu)的長(zhǎng)度 BaudRate: DWORD。 // wReserved: Word。 //傳送 XON閾值 XoffLim: Word。 //每字節(jié)位數(shù)( 48) Parity: Byte。 //0,1,2:1,2 XonChar: CHAR。 //設(shè)置 Tx和 Rx的 XOFF字符 ErrorChar: CHAR。 //表示輸入結(jié)束的字符 EvtChar: CHAR。 //保留,未使用 end。 DCB = _DCB。 GetCommState BOOL SetCommState( HANDLE hFile, // 通信設(shè)備的句柄 LPDCB lpDCB // 設(shè)備控制塊結(jié)構(gòu)的地址 )。 GetCommState(FHandle, FDCB)。 := EVENPARITY。 := 8。 WriteFile BOOL WriteFile( HANDLE hFile, // 要寫入文件的句柄 LPCVOID lpBuffer,// 寫入文件中的數(shù)據(jù)的指針 DWORD nNumberOfBytesToWrite,// 寫入的字節(jié)數(shù) LPDWORD lpNumberOfBytesWritten, // 寫入總字節(jié)數(shù)的指針 LPOVERLAPPED lpOverlapped // overlapped I/O結(jié)構(gòu)的指針 )。 strlen:DWord。 dat : array[0..99]of char。 dat[1] := chr($1B)。 dat[3] := chr($03)。 xx:=0。 dat[5] := chr(xx)。 WriteFile(FHandle,dat,strlen,strlen,nil)。 ReadFile BOOL ReadFile( HANDLE hFile, //要讀取文件的句柄 LPVOID lpBuffer, //接收數(shù)據(jù)的緩沖區(qū)地址 DWORD NumberOfBytesToRead, //讀取的字節(jié)數(shù) LPDWORD lpNumberOfBytesRead,//讀取總字節(jié)數(shù)的地址 LPOVERLAPPED lpOverlapped//OverLapped I/O結(jié)構(gòu)的地址 )。 flag:dword。 begin stepno:=0。 if flag0 then if dat1[0]=chr($fe) then stepno:=1。 Readfile(FHandle,dat,1,flag,nil)。 //取長(zhǎng)度 readfile(FHandle,dat1,length,flag,nil)。 PurgeComm BOOL PurgeComm( HANDLE hFile, // 通信資源的句柄 DWORD dwFlags // 執(zhí)行動(dòng)作 )。 dwFunc:指定串口必須完成的工作 ? CLRDTR:將 DTR線路降成低電壓 ? CLRRTS:將 RTS線路降成低電壓 ? SETDTR:將 DTR線路升成高電壓 ? SETRTS:將 RTS線路升成高電壓 ? SETXOFF:當(dāng)接收到 Xoff字符時(shí)激活傳輸操作 ? SETXON:當(dāng)接收到 Xon字符時(shí)激活傳輸操作 ? SETBREAK:設(shè)置通信狀態(tài)為中斷(送出 BREAK信號(hào)) ? CLRBREAK:清除 BREAK信號(hào),使傳輸動(dòng)作繼續(xù) GetCommModemStatus 取得串口數(shù)字輸入線路電壓狀態(tài)可用該函數(shù) BOOL GetCommModemStatus( HANDLE hFile, // 通訊設(shè)備的句柄 LPDWORD lpModemStat // 控制寄存器中數(shù)值的地址 )。 線程的實(shí)現(xiàn) 應(yīng)用程序執(zhí)行后即產(chǎn)生主線程,而主線程可以衍 生出其他線程。 Tthread類中常用的方法 ? Create:建立線程。 constructor Create(CreateSuspended: Boolean)。 ? Resume:執(zhí)行程序代碼。 ? Suspend:暫停線程。 var
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1