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

正文內(nèi)容

delphi串口通信編程教程演示課件-文庫(kù)吧資料

2025-01-01 18:48本頁(yè)面
  

【正文】 ( HANDLE hFile, // 通信設(shè)備的句柄 DWORD dwFunc // 指定執(zhí)行的功能 )。 end。 length:=ord(dat1[0])。 until (stepno=1)or(flag=0)。 repeat Readfile(FHandle,dat,1,flag,nil)。stepno:integer。 Var dat : array[0..99]of char。 end。 //異或校驗(yàn) strlen:=6。 for i:=1 to 4 do xx := xx xor ord(dat[i])。 dat[4] := chr($02)。 dat[2] := chr($44)。 begin dat[0] := chr($fe)。 xx:byte。 // lpOverlapped 通常用來(lái)作后臺(tái)工作時(shí)同步檢查之用,在串行通信中若不同時(shí)使用串行端口,則可不使用,設(shè)為nil var i:byte。 SetCommState(FCOMHandle, FDCB)。 := ONESTOPBIT。 := 9600。 Var FDCB: TDCB。 PDCB = ^TDCB。 TDCB = _DCB。 //接收事件字符 wReserved1: Word。 //有錯(cuò)誤時(shí)的替換字符 EofChar: CHAR。 //設(shè)置 Tx和 Rx的 XON字符 XoffChar: CHAR。 //04: no,odd,even,mark,space StopBits: Byte。 //傳送 XOFF閾值 ByteSize: Byte。 //保留,未使用 XonLim: Word。 //當(dāng)前波特率 Flags: Longint。 _DCB = packed record DCBlength: DWORD。 End。 // PCHAR(ComName) FHandle := CreateFile(ComName, GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)。 // ComName:string。 Var Fhandle:THandle。此項(xiàng)設(shè)置為 0 ? hTemplateFile :此項(xiàng)設(shè)置為 0 BOOL CloseHandle(HANDLE hObject)。在此設(shè)置為 nil,表示不可繼承 ? dwCreationDistribution :指定如何打開文件。由于將會(huì)對(duì)串口進(jìn)行讀寫操作,因此在此給定 GENERIC_READ和 GENERIC_WRITE常數(shù) ? dwShareMode :是否共享串行端口。 第2章 串行通信程序及組件建立 串行通信的 WindowsAPI 簡(jiǎn)述 通信測(cè)試 自動(dòng)與事件 串行通信的 WindowsAPI 簡(jiǎn)述 ?串行通信相關(guān)函數(shù) ?串口通信流程 Delphi的 Win32 API均聲明進(jìn)去,因此在 Delphi里面使用 API時(shí) 只要在 uses 區(qū)段中加入 Windows,使其引用該 單元文件即可 串行通信相關(guān)函數(shù) ? CreateFile:建立文件,在此用打開通信端口 ? CloseHandle:關(guān)閉由 CreateFile建立的文件,在此用于關(guān)閉通信端口 ? GetCommState:取得計(jì)算機(jī)串口的設(shè)置參數(shù) ? SetCommState:設(shè)置計(jì)算機(jī)串口的參數(shù) ? WriteFile:將數(shù)據(jù)寫入文件,在此用來(lái)將數(shù)據(jù)由串口送出 ? ReadFile:由文件中讀取數(shù)據(jù),在此用來(lái)取得送到串口的數(shù)據(jù) ? ClearCommError:清除串行端口的錯(cuò)誤,并取得信息 串行通信相關(guān)函數(shù) ? PurgeComm:清除串口上的緩沖區(qū) ? EscapeCommFunction:控制串口的硬件狀態(tài) ? SetCommMask:設(shè)置事件的掩碼,用以觸發(fā)事件 ? WaitCommEvent:等待設(shè)置事件的發(fā)生 ? GetCommModemStatus:取得串口上的硬件線路狀態(tài) HANDLE CreateFile( LPCTSTR lpFileName, //文件名指針 DWORD dwDesiredAccess, //存?。ㄗx /寫)模式 DWORD dwShareMode,//共享模式 LPSECURITY_ATTRIBUTES lpSecurityAttribute, //security attribute結(jié)構(gòu)指針 DWORD dwCreationDistribution, //打開文件的方式 DWORD dwAttrsAndFlags, //文件屬性 HANDLE hTemplateFile//帶屬性復(fù)制的文件句柄 ); 有關(guān)參數(shù)說(shuō)明 ? lpFileName :欲打開的文件名稱。 字長(zhǎng)不匹配 ?發(fā)送的是 8位字長(zhǎng),接收采用 7位字長(zhǎng) ?發(fā)送的是 7位字長(zhǎng),接收采用 8位字長(zhǎng) 停止位錯(cuò) ?接收端要求一個(gè)停止位,而發(fā)送端發(fā)送了兩個(gè)停止位 ?接收端要求兩個(gè)停止位,而發(fā)送端發(fā)送了一個(gè)停止位 幀錯(cuò) 一般指位數(shù)不匹配。 錯(cuò)誤排除 ?波特率失配 ?檢驗(yàn)錯(cuò)誤 ?字長(zhǎng)不匹配 ?停止位錯(cuò) ?幀錯(cuò) 波特率失配 如果兩個(gè)設(shè)備的波特率設(shè)置不同,當(dāng)接收 設(shè)備試圖接受數(shù)據(jù)時(shí),程序?qū)?bào)告校驗(yàn)錯(cuò) 和幀錯(cuò)。 錯(cuò)誤預(yù)防原理: 將所傳送的數(shù)值做相加的操作后與一個(gè)固定的除 數(shù)進(jìn)行除法運(yùn)算,所得的余數(shù)即為校驗(yàn)碼。 錯(cuò)誤預(yù)防 檢測(cè)數(shù)據(jù)在傳送過(guò)程中發(fā)生的錯(cuò)誤 ? CheckSum:將所有要傳送字符的 ASCII碼做加法運(yùn)算,計(jì)算其總和后將此數(shù)目與一數(shù)字(通常是 255)做除法運(yùn)算,再取其余數(shù),將此余數(shù)組合成傳送字符串的一部分而傳送出去;同樣,接收方也以相同的方式對(duì)所傳送過(guò)來(lái)的字符串進(jìn)行運(yùn)算操作,以判斷數(shù)據(jù)的正確性,如果不對(duì),則要求發(fā)送方重發(fā)。實(shí)際制作:將 RS232線的一端接頭拆掉,將里面的第 2引腳和第 3引腳對(duì)調(diào)即可。 接線和錯(cuò)誤預(yù)防 ?接線方法 ?錯(cuò)誤預(yù)防 接線方法 RS232口特點(diǎn): – 9引腳或 25引腳 – 公頭(區(qū)別于打印機(jī)接頭) 1 2 3 4 5 6 7 8 9 5 4 3 2 1 9 8 7 6 計(jì)算機(jī)上為公頭 連線上為公頭 ?當(dāng)使用 RS232與 Modem進(jìn)行連接時(shí),直接連接即可 ?當(dāng)使用 RS232和其他的設(shè)備進(jìn)行連接時(shí),有時(shí)就必須做必要的跳線 跳線 跳線的實(shí)際意義就是一個(gè)傳送的信號(hào)必須到達(dá)對(duì)方的接 收引腳,如此才能形成一個(gè)完整的通路。 計(jì)算機(jī) 設(shè)備 1. 設(shè)備必須將相對(duì)于計(jì)算機(jī)上的 DSR引腳降為低電壓 2. 計(jì)算機(jī)檢測(cè)到 DSR引腳為低電位后,暫停數(shù)據(jù)的傳輸;同時(shí)設(shè)備繼續(xù)處理位于緩沖區(qū)的數(shù)據(jù) 3. 等設(shè)備的接收緩沖區(qū)數(shù)據(jù)量下降到一定程度后,設(shè)備將 DSR引腳的標(biāo)準(zhǔn)電壓升高 4. 計(jì)算機(jī)一檢測(cè)到 DSR引腳為高電壓后,隨即繼
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1