Delhi串口通信編程基礎(chǔ)經(jīng)典_第1頁
Delhi串口通信編程基礎(chǔ)經(jīng)典_第2頁
Delhi串口通信編程基礎(chǔ)經(jīng)典_第3頁
Delhi串口通信編程基礎(chǔ)經(jīng)典_第4頁
Delhi串口通信編程基礎(chǔ)經(jīng)典_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Delphi串口通信編程魏贇第一章基本概念通信串行通信硬件基礎(chǔ)知識模式及流量接線和錯誤預(yù)防錯誤排除1、通信通信:不同的獨立系統(tǒng)通過線路互相交換數(shù)據(jù)數(shù)據(jù)通信:終端與計算機(jī)之間的通信或計算機(jī)與計算機(jī)之間的通信網(wǎng)絡(luò):構(gòu)成整個通信的線路數(shù)據(jù)傳送通信的類型字符傳輸數(shù)據(jù)傳送完整的通信系統(tǒng)包括發(fā)送端、接收端、轉(zhuǎn)換數(shù)據(jù)的接口以及傳送數(shù)據(jù)的實際信道或媒體DTE(DataTerminalEquipment):發(fā)送與接收的節(jié)點DSE(DataSwitchingEquipment):中間節(jié)點,負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)送工作DCE(DataCommunicationEquipment):負(fù)責(zé)數(shù)據(jù)與電氣信號轉(zhuǎn)換的設(shè)備DTE與DCE間的數(shù)據(jù)傳輸線路通常使用RS-232DTE與DSE間的媒體則包括了雙絞線、同軸電纜、光纖或無線電等傳送的方式并行傳送(Parallel):一次的傳輸量為8個位(1字節(jié))通過并行端口,如打印機(jī)串行傳送(Serial):一次只傳輸1個位通過串行端口,如RS-232通信的種類將數(shù)據(jù)轉(zhuǎn)換成串行通信有兩種方式同步方式:接收設(shè)備能自動與發(fā)送計算機(jī)同步,接收字符有規(guī)則的分割開來,以塊為單位,沒有起始位和停止位,效率高。異步方式:以字符為傳送單位,傳送的字符之間有無規(guī)律的間隔,這樣可能使接收設(shè)備不能正常接收數(shù)據(jù),因為每接收完一個字符都不能確切地知道下一個接收的字符從何時開始。(通過加開始位和停止位實現(xiàn))傳輸效率低,成本也低。字符傳輸位和字節(jié)文本編碼非文本編碼幀位和字節(jié)二進(jìn)制中的每一位0和1,被叫做一個位每8個位構(gòu)成一個字節(jié)一個字節(jié)中最右面的位被稱為第0位,最左面的位被稱為第7位。文本編碼文本(字符字母、標(biāo)點符號等)在計算機(jī)中存儲時,每個不同的字符都用不同的數(shù)值來表示。這些數(shù)值的范圍通常在0-127或0-255范圍。7位:ASCII碼,每個字節(jié)留一個備用位8位:前128個遵循ASCII碼規(guī)則,其余的128個用來做擴(kuò)展字符、數(shù)字符號、圖形字符等編碼。非文本編碼某些可執(zhí)行指令文件和圖形圖像文件就是以二進(jìn)制形式而不是ASCII碼形式存儲的。一個數(shù)據(jù)可用二進(jìn)制形式存儲,可以占多個字節(jié)。在通信領(lǐng)域,常常把這種類型的資料叫做二進(jìn)制數(shù)據(jù)。幀幀:在串行異步通信情況下,構(gòu)成一個字節(jié)的那些數(shù)據(jù)單元被稱為數(shù)據(jù)位,在數(shù)據(jù)位的前、后要加上起始位、停止位和奇偶校驗位。一個字符所使用的位數(shù)根據(jù)協(xié)議而不同。稱這些位數(shù)為字符位數(shù)據(jù)長或字長。通常不是8位就是7位。2、串行通信RS-232串行通信RS-485串行通信USB接口IEEE-1394RS-232串行通信RS-232的通信端口是每臺計算機(jī)上的必要配置,通常含有COM!和COM2兩個端口。計算機(jī)上的RS-232均是公頭一般有兩種:9引腳和25引腳RS-485串行通信(差分方式傳輸)RS-485的通信方式可有效地防止噪聲信號的干擾。RS-485的信號將被發(fā)送出去時會先分成正負(fù)的兩條線路,當(dāng)?shù)竭_(dá)接收端后,再將信號相減還原來原來的信號;如果將原始的信號記為(DT),而被分成后的信號分別記為(D+)及(D-),則原始的信號與離散的信號在由發(fā)送端發(fā)送出去時:(DT)=(D+)-(D-)如果此線路受干擾,則兩條傳輸線上的信號會分別成為(D+)+Noise及(D-)+Noise(DT)=[(D+)+Noise]-[(D-)+Noise]=(D+)-(D-)USB(UniversalSerialBus)接口集成一般計算機(jī)所使用的外圍設(shè)備的連接方式,而且其所采用的信號傳輸方式也是串行通信。USB特性:低價位,熱連接,單一的連接頭方式,連接數(shù)多,線上供電,不占系統(tǒng)資源,錯誤檢測與復(fù)原,節(jié)省能源,支持四種傳輸(巨量、實時、中斷及控制4種傳輸模式),速度較快(12Mbps/RS-232最快115bps)IEEE-1394IEEE-1394(也稱FireWire,火線)與USB一樣擁有即插即用的功能,也是用于解決計算機(jī)與外圍設(shè)備復(fù)雜的連接問題,并且也是使用串行通信的傳輸方式。IEEE-1394的傳輸速度是400Mbps,而且速度還向1000Mbps邁進(jìn)USB與IEEE-1394的比較比較項目USBIEEE-1394

應(yīng)用低速設(shè)備高速設(shè)備帶寬(Mbps)1.5,12100,200,400電纜長度5米4.5米電纜4線6線即插即用支持支持3、硬件基礎(chǔ)知識PC機(jī)的RS-232接口名稱尚未統(tǒng)一,有多個名稱:RS-232口、串口、通信口、COM口、異步口等。123456789常用的9條RS-232信號線引腳信號名稱信號方向簡稱信號功能1載波檢測DCE-DTEDCD(DataCarrierDetect)數(shù)據(jù)鏈路已連接2接收數(shù)據(jù)DCE-DTERxD(Receive)DTE接收串行數(shù)據(jù)3發(fā)送數(shù)據(jù)DTE-DCETxD(Transmit)DTE發(fā)送串行數(shù)據(jù)4數(shù)據(jù)終端就緒DTE-DCEDTR(DataTerminalReady)DTE準(zhǔn)備準(zhǔn)備就緒5信號地-SG(SignalGround)公共信號地6數(shù)據(jù)設(shè)備就緒DCE-DTEDSR(DataSetReady)DCE準(zhǔn)備就緒,可以接收7請求發(fā)送DTE-DCERTS(RequesttoSend)DTE通知DCE請求發(fā)送8清除發(fā)送DCE-DTECTS(CleartoSend)DCE已切換到接收模式9振鈴指示DCE-DTERI(RingIndicator)通知DTE有遠(yuǎn)程呼叫一次應(yīng)答呼叫過程Modem從接收到振鈴信號開始,到數(shù)據(jù)傳輸結(jié)束Modem和DTE恢復(fù)到原來的空閑狀態(tài)為止的過程。數(shù)據(jù)寄終端D居TE的帽控制軟櫻件持續(xù)彈監(jiān)視振世鈴指示徒RI,乎等待該信號有說效響鈴煮后,RI信暫號在O賤N和O陷FF狀舞態(tài)之間背交替變搬化。DT愚E的通喇信控制兆軟件在劫檢測到黎振鈴指茅示后,堤開始通姨過計算機(jī)振鈴范指示的O狐N和OF炮F狀態(tài)的攝變化次數(shù)光來進(jìn)行計版數(shù)。當(dāng)達(dá)到程助序設(shè)計的廉次數(shù)時,駱控制軟件塞發(fā)出終端慌就緒信號(DTR套)有效,寬使Mod修em進(jìn)問行摘機(jī)畢狀態(tài),層開始應(yīng)暮答電話Mod槽em在技等待一診小段時魂間后,脅自動地波發(fā)送它辯的應(yīng)答祝載波信號。再同時M心ode精m發(fā)出在數(shù)據(jù)設(shè)升備就緒芽信號(男DSR污),通知DT糟E已經(jīng)旗完成所悠有準(zhǔn)備歌工作,壞正在等陡待對方壓的載波敞信號在D并TE發(fā)泥出數(shù)據(jù)客終端就校緒信號銹(DT扔R)期三間,D性TE的吉控制軟之件監(jiān)視梅數(shù)據(jù)設(shè)斗備就緒帥信號(望DSR森)是否償有效,蟲當(dāng)DS羽R為O蹄N狀態(tài)朗后,D康TE便例知道Mod籍em已忍準(zhǔn)備建魂立數(shù)據(jù)務(wù)鏈路,螞于是D寄TE開某始檢測毛載波信窮號(D惡CD)時,以檢質(zhì)查數(shù)據(jù)朗鏈路是尋否已經(jīng)齒建立當(dāng)主接叫Mode晴m的載波嗚信號出現(xiàn)煙在電話線濫上時,被遷叫Mod駐em發(fā)出航載波信號渡(DCD渡),以檢捉查數(shù)據(jù)鏈架路是否已騾經(jīng)建立在數(shù)據(jù)淡鏈路連接巖期間,發(fā)越送數(shù)據(jù)(麥TxD)彈和接收數(shù)騙據(jù)(Rx屑D)線上浩即開始了偽全又工通黎信。同時閥,DTE鵲仍監(jiān)視載賓波信號(槍DCD)也,以確定惹數(shù)據(jù)鏈路呆是否連接數(shù)據(jù)芒傳輸結(jié)衡束后,斷DTE脊使數(shù)據(jù)嶄終端就貫緒信號戰(zhàn)(DT補(bǔ)R)無宏效,Mode名m撤消載沖波檢測(表DCD)捆,并且使禮設(shè)備數(shù)據(jù)槍就緒信號處(DSR莊)信號無筍效。數(shù)據(jù)曠候鏈路釋度放后,園Mode冰m和DT己E返回到愚初始狀態(tài)感。通信參動數(shù)數(shù)據(jù)的傳范送速度數(shù)據(jù)的傳合送單位數(shù)據(jù)的館傳送速饅度波特率:姥每秒所能凝產(chǎn)生的最幅大電壓狀炊態(tài)改變率樸(一秒鐘雪可以振蕩祝的次數(shù))瘋bps通信雙渾方必須它要取得思一樣的父通信速飲度。原伙始信號利經(jīng)過不輪一樣的秀波特率姐取樣后燦,所得刺的結(jié)果憐完全不光一樣,盾如取樣隨速度只甘有原來攀一半時什,信號澡被跳著醋取樣,擠數(shù)據(jù)因悼此錯誤川。數(shù)據(jù)的柜傳送單踏位一般串行店通信端口筆所傳送的泊數(shù)據(jù)是字淡符類型,餡若用來傳戒輸文件,傅則會使用像二進(jìn)制的現(xiàn)數(shù)據(jù)類型佳。起始位及清停止位異步串疤行傳輸啊時需要當(dāng)發(fā)送端轟要開始傳伏送數(shù)據(jù)時桌,便將傳譜輸線上的飽電壓由低欣電位提升卷至高電位門,而當(dāng)傳蝦送結(jié)束后想,再將電針壓降至低桃電壓。接樹收端會因恥起始位的捧觸發(fā)(因劃電壓由低春電位升至執(zhí)高電位)玻而開始接耍收數(shù)據(jù);饞并因停止杏位的通知枯(因電壓茄維持在低愚電位)而墻確節(jié)知道內(nèi)數(shù)據(jù)的字膝符已經(jīng)結(jié)只束。校驗位店的檢查用來檢查億所傳送數(shù)候據(jù)正確性用的一種核央對碼,其發(fā)中又分成壩奇校驗(邀Odd)缺及偶校驗援(Eve宮n)串行通信團(tuán)上的字符傻數(shù)據(jù)格式起始位+策傳送字符研+校驗位橋+停止位4、模式軟及流量工作模兼式硬件握悶手軟件握手工作模式當(dāng)計算機(jī)漏在進(jìn)行數(shù)具據(jù)的傳送灘與接收時搏,傳輸線喇上的數(shù)據(jù)流動情況攝可分為3腥種:單工:熊傳輸線孫上的數(shù)斥據(jù)流動不只有一闖個方向半雙工狂:數(shù)據(jù)耍流動是連雙向,迎但同一惑時間只去能一個殃方向行令進(jìn)全雙工:姐傳輸線同螞時具有兩忍個方向的豬傳輸能力RS-望485躺屬于半夜雙工,嘩RS-暴232矩屬于全照雙工(豬引腳在籍設(shè)計時虛就是接供收與傳蹤蝶送是分順屬兩個老不同的您引腳與甜線路。無)串行數(shù)據(jù)做的流動方嘆式當(dāng)數(shù)據(jù)磨要由A甜設(shè)備傳億送至B趟設(shè)備前腎,數(shù)據(jù)筋會先被送悶到A設(shè)惜備的數(shù)音據(jù)輸出賣緩沖區(qū)概,接著再由此票緩沖區(qū)途將數(shù)據(jù)就由RS之-23色2線路且傳送到B設(shè)備;圖同樣地,趴當(dāng)數(shù)據(jù)通暫過硬件線東路傳送到B設(shè)備吉時,數(shù)據(jù)匯首先會送子到接收緩擋沖區(qū),而設(shè)備往B的C犁PU再號到接收果緩沖區(qū)檢將數(shù)據(jù)病讀取并進(jìn)行扎處理。握手握手信號獻(xiàn):提供一貼種控制數(shù)舌據(jù)流的方雹法,即接下收設(shè)備可網(wǎng)以控制發(fā)何送設(shè)備的頁數(shù)據(jù)發(fā)送顛。如果接收決設(shè)備速度體比發(fā)送速晃度快,握仿手信號可聲以略去。在異步寇串行通西信中,爹這稱之扛為握手諷(ha鳳nds院hak諸ing禮)或流吸量控制混(fl蠻ow腸con叔tro方l)。流量控典制:保糾證傳輸匆雙方都種能正確刑地傳送權(quán)和接收睜數(shù)據(jù)而端不會漏計失。握手控云制可以忘具休分沿為硬件搜握手和話軟件握益手。硬件握繪手使用專在門的握任手電路鏡去控制參數(shù)據(jù)的陣傳輸。當(dāng)接收設(shè)度備準(zhǔn)備好沿之后,就勸通過專用酒的握手電避路傳送一個正電壓歪給發(fā)送設(shè)避備,指示某發(fā)送設(shè)備輪發(fā)送數(shù)據(jù)隊。如果接收設(shè)備開傳送一碧個負(fù)電鼠壓給發(fā)慨送設(shè)備必,則指犯示發(fā)送貍設(shè)備停止發(fā)送股數(shù)據(jù)。硬件握手愿用到DS無R、CT回S、DT印R、RT肺S4條硬考件線路,爬其中DT董R、RT湖S指的是墻計算機(jī)上丟的RS-箭232端賓;而DS醫(yī)R、CT凱S則是指虎被控制的娘設(shè)備端。計算機(jī)醒->設(shè)塔備設(shè)備必剛須將相導(dǎo)對于計匠算機(jī)上銅的DS終R引腳冠降為低阻電壓計算機(jī)檢那測到DS士R引腳為保低電位后資,暫停數(shù)賺據(jù)的傳輸掩;同時設(shè)夢備繼續(xù)處醉理位于緩糞沖區(qū)的數(shù)漏據(jù)等設(shè)備矛的接收怒緩沖區(qū)霉數(shù)據(jù)量繳下降到臟一定程即度后,雞設(shè)備將家DSR膀引腳的森標(biāo)準(zhǔn)電旗壓升高計算機(jī)妄一檢測項到DS難R引腳伐為高電紋壓后,旗隨即繼針續(xù)傳送廢數(shù)據(jù)給珠設(shè)備設(shè)備->弟計算機(jī)計算機(jī)諷將DT路R引腳妙降為低孕電壓設(shè)備檢州測到D蛇TR引些腳為低旁電壓后薪,暫停塌數(shù)據(jù)的練傳輸;行同時計咐算機(jī)也巡壽會繼續(xù)鼠處理位嘴于緩沖造區(qū)的數(shù)涼據(jù)待計算機(jī)勇的接收緩鐵沖區(qū)中數(shù)包據(jù)量下降百到一定程幕度后,計釘算機(jī)將D島TR引腳性的標(biāo)準(zhǔn)電扎壓升高設(shè)備一云檢測到冠DTR陵引腳為摩高電壓默后,隨懷即繼續(xù)氏傳送數(shù)漢據(jù)給計訪算機(jī)軟件握手以數(shù)據(jù)桐線上的稱數(shù)據(jù)信黨號來代摟替實際弱的硬件季線路最常見的墾是XON功/XOF堪F協(xié)議:若接收綢端欲使殼發(fā)送端允暫停數(shù)抱據(jù)的傳匙送時,跑它便向聾發(fā)送端送出AS鍛CII第喝19號字午符(十六露進(jìn)制是1暑3);而午欲恢復(fù)傳閉送時,便皮向發(fā)送牙端送出齊ASC梨II第診17號市字符(畢十六進(jìn)什制是1味1),兩個字符雙的交互使膚用,便可龜控制發(fā)送割端的傳送屈操作了。其操作流抵程與硬件雀握手類似營。5、接線抗和錯誤預(yù)浴防接線方消法錯誤預(yù)防接線方抖法RS-2胃32口特葬點:9引腳名或25淺引腳公頭(區(qū)想別于打印慮機(jī)接頭)123456789543219876計算機(jī)上汽為公頭連線上跡為公頭當(dāng)使用R群S-23駁2與Mo僚dem進(jìn)繪行連接時幻玉,直接連亡接即可當(dāng)使用R明S-23近2和其他朽的設(shè)備進(jìn)捧行連接時儉,有時就橫必須做必嘆要的跳線跳線跳線的實睬際意義就集是一個傳額送的信號便必須到達(dá)屬對方的接收引腳毯,如此邀才能形星成一個創(chuàng)完整的乒通路。跳線:榨欲將數(shù)箏據(jù)從一竿個地方極傳送至惹另一個航地方,有其實只臺要使用底第2引及腳、第妨3引腳束與第5涌引腳就達(dá)可以形透成一個熊最簡單儲的通信胞線路。孫實際制械作:將億RS-統(tǒng)232初線的一斜端接頭漁拆掉,陜將里面夏的第2遍引腳和返第3引飯腳對調(diào)妙即可。跳線的忠意義:叉甲方傳嗓送的數(shù)提據(jù)必定駐到乙方拜的接收完信道;郵而乙方臘的傳送袋數(shù)據(jù)則旗會到達(dá)蔬甲方的晌接收信判道,雙監(jiān)方的傳側(cè)送與接雜收形成抽一個完廉整的回儉路。錯誤預(yù)身防檢測數(shù)據(jù)襯在傳送過寫程中發(fā)生矮的錯誤Chec慨kSum宗:將所有編要傳送字驅(qū)符的AS農(nóng)CII碼光做加法運辮算,計算身其總和后匆將此數(shù)目里與一數(shù)字告(通常是莫255)鉗做除法運炕算,再取期其余數(shù),決將此余數(shù)曬組合成傳嬌送字符串愉的一部分藏而傳送出功去;同樣咐,接收方江也以相同堆的方式對鞭所傳送過中來的字符盒串進(jìn)行運鎮(zhèn)算操作,創(chuàng)以判斷數(shù)就據(jù)的正確成性,如果俯不對,則膊要求發(fā)送焦方重發(fā)。CRC辱(Cy淡cli良cR爐edu費nda懲ncy牌Ch問eck建Co房誠de循冤環(huán)冗余易校驗碼筑)將欲傳輸您的數(shù)據(jù)塊朋視為一堆墳連續(xù)位所顛構(gòu)成的一厘個整數(shù)值犯,并將此品數(shù)值除一澇個特定的邊除數(shù)。錯誤預(yù)夜防原理僻:將所傳卡送的數(shù)屋值做相寇加的操席作后與姑一個固輛定的除數(shù)進(jìn)行除理法運算,雪所得的余終數(shù)即為校忍驗碼。傳萬送與接收的歌雙方只要拘針對其固螞定的檢查越方法分別構(gòu)進(jìn)行運算塵,比較文后只要催雙方均賴一致,裁即正確約;若不一致,數(shù)劃據(jù)重傳。6、錯必誤排除波特率失課配檢驗錯布誤字長不匹絮配停止位錯幀錯波特率柳失配如果兩巷個設(shè)備革的波特咐率設(shè)置爭不同,刻當(dāng)接收設(shè)備試楊圖接受暖數(shù)據(jù)時蜂,程序圣將報告近校驗錯和幀錯束。校驗錯艱誤指數(shù)據(jù)匙在傳輸叔中被破輔壞,至康少可以角說明設(shè)備在奇偶出校驗位類件型設(shè)置不須同或者字罵長不同。字長不役匹配發(fā)送的辣是8位璃字長,真接收采燈用7位依字長發(fā)送的是番7位字長肝,接收采朱用8位字蝕長停止位界錯接收端撕要求一傘個停止摩位,而午發(fā)送端秋發(fā)送了救兩個停灶止位接收端要英求兩個停碑止位,而亮發(fā)送端發(fā)三送了一個救停止位幀錯一般指縫位數(shù)不委匹配。這個類由型的錯錫誤,通堪常是在赤沒有接黃收到要萄求的停偏止位時且出現(xiàn)。第2章面串行通信鋸程序及組竟件建立1、串行陣通信的W連indo漂wsAPI簡述2、通信許測試3、自濁動與事尿件1、串行東通信的W姐indo院wsAPI簡述串行通慈信相關(guān)排函數(shù)串口通暢信流程Delp劣hi的W鳥indo花ws.p氏as單元塊文件中已聲經(jīng)將Wi遇n32API均炮聲明進(jìn)去雹,因此在升Delp牽hi里面愈使用AP基I時只要在皮use循s區(qū)扇段中加陪入Wi欄ndo月ws,紙使其引讀用該單元文績件即可串行通傭信相關(guān)筒函數(shù)Cre夢ate塌Fil波e:建燥立文件竹,在此卻用打開鑼通信端歉口Clo此seH欄and刑le:擾關(guān)閉由孕Cre祖ate嘗Fil周e建立銷的文件罰,在此售用于關(guān)差閉通信鑼端口Get恥Com撥mSt著ate忙:取得銀計算機(jī)櫻串口的鑒設(shè)置參蜜數(shù)Set戴Com南mSt都ate缸:設(shè)置劑計算機(jī)周串口的午參數(shù)Writ縫eFil收e:將數(shù)請據(jù)寫入文番件,在此責(zé)用來將數(shù)致?lián)纱诎袼统鯮ea報dFi怒le:咳由文件福中讀取安數(shù)據(jù),刃在此用器來取得萌送到串廉口的數(shù)煩據(jù)Clea炊rCom釋mErr磨or:清驅(qū)除串行端負(fù)口的錯誤膜,并取得玻信息串行通娘信相關(guān)掩函數(shù)Pur便geC獻(xiàn)omm丹:清除謀串口上丸的緩沖舞區(qū)Esc線ape銷Com石mFu比nct絲式ion路:控制交串口的曠硬件狀傲態(tài)SetC尊ommM升ask:堵設(shè)置事件省的掩碼,彎用以觸發(fā)撿事件Wai旨tCo換mmE塔ven永t:等陶待設(shè)置痰事件的頌發(fā)生Get目Com陽mMo略dem夠Sta呈tus偷:取得賣串口上先的硬件觀線路狀綱態(tài)HAN促DLE啦Cr總eat鬼eFi渠le(LPC醋TST險Rl星pFi包leN惡ame翁,/墻/文件證名指針DWOR漿Ddw艦Desi襲redA艷cces辯s,/槽/存?。üプx/寫)引模式DWOR束Ddw熟Shar殼eMod闊e,//縮慧共享模式LPSE緞CURI刻TY_A衛(wèi)TTRI烘BUTE墨Slp歸Secu虹rity課Attr檔ibut競e,/車/sec惱urit躬yat陸trib莊ute結(jié)俗構(gòu)指針DWOR嘆Ddw抖Crea灣tion乒Dist卸ribu姨tion足,//際打開文件母的方式DWO個RD外dwA曉ttr填sAn蹈dFl盟ags似,/葉/文件射屬性HAN號DLE谷hT涂emp釘lat掠eFi局le/還/帶屬尺性復(fù)制欠的文件潑句柄);有關(guān)參殊數(shù)說明lpFi坊leNa撇me:欲打開寺的文件名四稱。以串塌口通信來渣說,就是獄COM1服、CO略M2等dwDe臣sire餓dAcc丘ess:讀寫模譽式設(shè)備。殊由于將會最對串口進(jìn)測行讀寫操割作,因此瞞在此給定邁GENE泰RIC_勾READ田和GEN蒙ERIC非_WRI逗TE常數(shù)dwSh探areM馳ode:是否共遠(yuǎn)享串行端菌口。一般打不共享,顯設(shè)為0lpSe秋curi駐tyAt墊trib信ute:傳入一賓個Se受cur渠ity鳴At嚇tri語but功e結(jié)構(gòu)洗,指明丑其返回別的Ha卷ndl譜e是否踩可以被桿子程序銀所繼承伸。在此版設(shè)置為設(shè)nil擦,表示冰不可繼驚承dwC吐rea茄tio謀nDi錫str睛ibu悶tio形n:指定如擴(kuò)何打開文黎件。在打僑開設(shè)備時凡,此參數(shù)問設(shè)定為O銳PEN_姻EXIS項TINGdwAt鏟trsA烘ndFl毯ags:文件膝屬性及描相關(guān)標(biāo)串志。此停項設(shè)置羊為0hTem腥plat怠eFil駱e:此項好設(shè)置為尸0BOO晉LC獎los萍eHa談ndl求e(H固AND步LE潛hOb鍵jec擦t);hObj杜ect:冠要關(guān)閉對教象的句柄當(dāng)函數(shù)返化回Tru碗e時,表趨示關(guān)閉動者作完成。VarFha我ndl蛇e:T幟Han爹dle耳;ComN具ame:謹(jǐn)arra絲式y(tǒng)[0.查.4]概ofc加har;成//C榆omNa肆me:s崗trin劇g;Beg套inCom驚Nam捆e:=壇‘CO唯M1’基;//P松CHAR俊(Com考Name為)FHa猶ndl顆e:危=C著rea辯teF等ile終(Co場mNa約me,出GE悔NER盯IC_旨REA斬Do友rG產(chǎn)ENE殃RIC堤_WR底ITE概,0,店nil季,O精PEN亭_EX飲IST伸ING慚,FIL紀(jì)E_A肥TTR越IBU漿TE_訴NOR霞MAL醉,0秩);if丸FHa銜ndl另e<>易INV爬ALI牌D_H樓AND卵LE_彩VAL擊UE好the迫nshow孟mess凡age(紛‘串口打惹開成功!阻’)Elseshow背mess梳age(卵‘串口打炎開失??!薄’);Clo離seH字and正le(鞋F(xiàn)Ha促ndl杜e);End;GetC牛ommS憑tateBOOL葬Get信Comm房誠Stat貝e(HAND蘿LEh宵File渾, //如通信設(shè)遼備的句柄LPD行CB蠢lpD篇CB饑//濱設(shè)備控砍制塊結(jié)遙構(gòu)的地狗址);_DCB復(fù)=p百acke睡dre臣cordDCB梁len芳gth揭:D蟲WOR驢D;漂/喬/DC創(chuàng)B結(jié)構(gòu)適的長度Bau但dRa義te:僅DW思ORD泥;削/雄/當(dāng)前踩波特率Fla歉gs:目Lo躍ngi慚nt;認(rèn)//wRe靈ser韻ved能:W嬸ord井;嚇/瓜/保留把,未使響用XonL害im:憐Word柴;濁/概/傳送X屑ON閾值Xoff悲Lim:瞧Wor峽d;含/恐/傳送X那OFF閾祝值Byte鉗Size誦:By驕te;咐//每銳字節(jié)位數(shù)?。?-8扔)Pari備ty:游Byte炒;霜//0-惑4:no適,odd按,eve計n,ma亦rk,s售paceSto雕pBi培ts:翁By深te;碌/暑/0,龜1,2歉:1,震1.5俱,2Xon斤Cha鞠r:仁CHA眉R;價/敲/設(shè)置槐Tx和言Rx的算XON乖字符Xoff師Char答:CH發(fā)AR;梁/響/設(shè)置T煌x和Rx散的XOF鑄F字符Err劑orC桃har置:C叼HAR驚;轉(zhuǎn)/林/有錯雖誤時的珠替換字溝符Eof言Cha礎(chǔ)r:積CHA金R;糖//表松示輸入勞結(jié)束的級字符Evt瞎Cha堂r:編CHA繳R;攤//接距收事件點字符wRe河ser嶄ved段1:估Wor南d;脂/貍/保留縱,未使拜用end;TDCB盛=_薄DCB;DCB進(jìn)=烈_DC炮B;PDCB形=^未TDCB喪;SetC驅(qū)ommS息tateBOO握LS醉etC頓omm忽Sta虛te(HAND秋L(fēng)Eh障File馬, //健通信設(shè)聰備的句柄LPD長CB勞lpD扇CB飽//晶設(shè)備控織制塊結(jié)民構(gòu)的地清址);Var寫FDCB腫:TD杰CB;Get雖Com詠mSt右ate雙(FH晶and狀le,謹(jǐn)FD梢CB)棗;FDCB籠.Bau大dRat明e:=往960霸0;FDCB李.Par殖ity慈:=E觸VENP塌ARIT憑Y;FDC辮B.S搭top猾bit歐s:悲=O釀NES前TOP檢BIT許;FDCB賣.Byt滾esiz泉e:=斬8;Set州Com的mSt鼠ate嚼(FC膨OMH制and優(yōu)le,并FD營CB)忠;Writ次eFil掏eBOO絲式LW絕rit傷eFi躬le(HAN級DLE妹hF樸ile套, /逃/要差寫入文挎件的句秘柄LPC謀VOI龜Dl孟pBu朽ffe沃r,/謠/寫落入文件館中的數(shù)她據(jù)的指裙針DWO淡RD憶nNu吃mbe嬸rOf麗Byt杏esT維oWr控ite齊,//恒寫入展的字節(jié)搞數(shù)LPDW臣ORD探lpNu塔mber糕OfBy縫tesW誦ritt外en,欲//寫桃入總字節(jié)撓數(shù)的指針LPO副VER擁LAP喜PED童lp妙Ove和rla墾ppe豆d籌//內(nèi)ove沿rla繳ppe仙dI湯/O結(jié)覽構(gòu)的指掘針);//況lpO識ver喉lap司ped席通常慎用來作輕后臺工促作時同造步檢查鏡之用,絕在串行利通信中色若不同希時使用壟串行端三口,則萍可不使掘用,設(shè)開為ni峽lvari:by瞞te;strl譜en:D灑Word礙;xx:龍byt龜e;dat羊:咐arr洪ay[柱0..烈99]董of利cha牢r;beg挖indat[某0]:違=ch捏r($f貫e);呼da俊t[1]泉:=婚chr(危$1B)板;榮dat[犧2]:捷=ch亮r($4篇4);dat[情3]:揉=ch吃r($0宮3);層da學(xué)t[4]落:=司chr(洽$02)卻;xx:吸=0;for肉i:插=1羨to厘4d薦o光x盈x:紐奉=x多xx雄or廉ord宮(da龜t[i們]);dat曲[5]昏:=斧ch伏r(x講x);草//棚異或校筒驗str荷len恭:=6毒;Writ恐eFil余e(FH濕andl騾e,da抵t,st勾rlen腔,str板len,懂nil)遼;end喘;Rea明dFi欺leBOOL草Rea穩(wěn)dFil夠e(HAND中LEh票File灶,//傾要讀取文希件的句柄LPVO瓣IDl參pBuf爬fer,稅//牌接收數(shù)據(jù)叼的緩沖區(qū)匆地址DWO胃RD抵Num歸ber脂OfB貴yte間sTo冊Rea秩d,側(cè)//讀心取的字頃節(jié)數(shù)LPDW葵ORD旨lpNu含mber或OfBy杰tesR恭ead,妄//讀取殿總字節(jié)數(shù)帝的地址LPOV黑ERLA喬PPED哲lpO筒verl禍appe憂d//O版verL趴appe讓dI/狡O結(jié)構(gòu)的珠地址);Vardat丈:ar釣ray[剛0..9杏9]of尾cha盟r;fla針g:d物wor膜d;s螺tep蠅no:嗚int座ege沸r;beg馳instep臨no:=撤0;rep帳eatRead懇file授(FHa釀ndle抬,dat施,1,f燭lag,健nil)偷;iff熱lag>臉0th森enifd特at1[內(nèi)0]=c尋hr($熱fe)瓣then維ste抬pno:趟=1;unt夸il腦(s煩tep議no=論1)o語r(f業(yè)lag釀<=0硬);Read槳file芝(FHa央ndle領(lǐng),dat貸,1,f星lag,陳nil)亮;len宅gth懂:=o殖rd(待dat斜1[0荒]);畝//悔取長度rea批dfi狼le(浙FHa峰ndl桂e,d世at1疫,le雜ngt控h,f倒lag剖,ni節(jié)l);end膽;Pur伏geC魂ommBOO撲LP倦urg晉eCo鞭mm(HAND茄LEh未File跳, //烘通信資爺源的句柄DWOR膠Ddw壁Flag比s //順執(zhí)行動榜作);dwF棕lag賠s:指英定執(zhí)行牲的工作PUR槳GE_快TXA敲BOR卵T:終慢止目前保所有的拆傳輸工權(quán)作,立欣即返回惕,不管盲是否完梁完成傳魂輸?shù)牟佾C作PUR遼GE_蹈RXA哄BOR兩T:終雨止目前費所有的裕讀取工諸作,立宏即返回燙,不管姐是否完荷成讀取瓜操作PURG版E_TX坊CLEA疤R:清除惹傳送緩沖倒區(qū)中的所昌有數(shù)據(jù)PUR子GE_殃RXC贊LEA蹄R:清誤除接收煤緩沖區(qū)印中的所歇有數(shù)據(jù)Esca似peCo侍mmFu倉ncti賓onBOO耽LE圈sca釘peC貫omm凈Fun陷cti倦on(HAN摧DLE化hF鎮(zhèn)ile改, /圓/通穩(wěn)信設(shè)備辭的句柄DWOR框Ddw銳Func階//奏指定執(zhí)哈行的功能);dwFu就nc:指是定串口必雁須完成的降工作CLRD臘TR:將艷DTR線年路降成低汁電壓CLRR攔TS:將叢RTS線句路降成低爽電壓SET熊DTR小:將D巖TR線衛(wèi)路升成碼高電壓SETR存TS:將緞RTS線鎖路升成高勾電壓SET耳XOF領(lǐng)F:當(dāng)尊接收到盲Xof斑f字符珍時激活獎傳輸操愚作SET霧XON曬:當(dāng)接灘收到X洪on字暢符時激杠活傳輸偵操作SET兵BRE崖AK:但設(shè)置通路信狀態(tài)很為中斷英(送出映BRE昂AK信站號)CLR農(nóng)BRE亭AK:著清除B丙REA妄K信號江,使傳碗輸動作士繼續(xù)Get候Com魄mMo諷dem酸Sta車tus取得串口螺數(shù)字輸入礎(chǔ)線路電壓炊狀態(tài)可用沖該函數(shù)BOOL騰Get點Comm進(jìn)Mode憶mSta煉tus(HAND直LEh刷File假, //貌通訊設(shè)湊備的句柄LPDW向ORD烘lpMo僻demS栽tat淘//控西制寄存器印中數(shù)值的煤地址);lpMo權(quán)demS企tat:倦指向檢測色到的狀態(tài)閱的參數(shù)地使址,32捉位長度MS_C驅(qū)TS_O距N:CT撐S(c涉lear童-to-蜘send采)引腳盈升至高電犧壓MS_緩DSR班_ON堡:DS雅R(羽dat丑a-s季et-殼rea膠dy)痛引腳模升至高再電壓MS_令RIN妨G_O奴N:R驗I引腳挪升至高艱電壓MS_浙RLS傲D_O襖N:D脈CD引洞腳升至的高電壓串口通信肚流程打開通信全端口打開成功渡?通信參數(shù)桃設(shè)置其他函數(shù)掀操作顯示錯硬誤信息關(guān)閉串口結(jié)束開始繼續(xù)操憤作?否是2、通丙信測試通信步另驟回路測晌試通信步欺驟設(shè)置通搬信端口寒號碼使用C閑rea組teF愉ile申函數(shù)打看開通信葡端口設(shè)置通伐信協(xié)議設(shè)置傳輸抓速度等參促數(shù)設(shè)置其導(dǎo)它參數(shù)送出字符布串或讀入央字符串,螺使用Re憑adFi略le及W駱rite綁File失函數(shù)使用完麻畢后以傭Clo卷seH殼and蕉le函箏數(shù)將通世信端口絕關(guān)閉回路測試硬件設(shè)穩(wěn)置軟件實門現(xiàn)硬件設(shè)斷置兩臺計算景機(jī),各使耕用其上的坡一個串口效,一條R章S-23任2兩邊都斑是母頭的態(tài)線一臺計舟算機(jī),回但擁有盾兩個串普行通信遺口,一開條RS攔-23虜2兩邊室都是母萍頭的線一臺計等算機(jī),丈一個串蠟行通信跳口,一晚條RS顏-23給2線,割至少其推中一邊甚是母頭3、自玩動與事臥件自動化的服實現(xiàn)輪詢方式傷:不斷地刪發(fā)出詢問協(xié)的信號給暖設(shè)備,要詳求設(shè)備返語回計算機(jī)葬所要的信哲息使用定時崖器(Ti章mer組禁件),設(shè)螞定時間間啞隔,當(dāng)時廁間間隔一立到,便會薪執(zhí)行原先洲放在定時聾器中的程藍(lán)序代碼使用W裕hil稱e…D媽o不斷違地執(zhí)行孕程序代府碼線程方領(lǐng)式:將統(tǒng)串行通侍信的功容能封裝蒜在一個夜線程中逼,利用腎線程的轉(zhuǎn)不斷執(zhí)頸行而達(dá)孤到自動詠化的目購的建立多線暮程工作原理決:操作系餅統(tǒng)將C媽PU處尤理數(shù)據(jù)茂的時間歇切成很睬多的時磚間片(Tim銹eSl聾ice)挑,操作系殃統(tǒng)再將應(yīng)豪用程序的倡代碼加載到CPU冤中執(zhí)行,握一旦這一濾小塊的時業(yè)間執(zhí)行完緣瑞畢后,操作系統(tǒng)待會將正在址執(zhí)行的程疑序放一邊位,然后再策取另外一個應(yīng)排用程序進(jìn)侄CPU中蓋執(zhí)行,一老樣只執(zhí)行事這一小塊時間龜片,如刃此周而翠復(fù)始,販所以見修到了整悉個系統(tǒng)爐中多任務(wù)惠的情況拒。線程的洪實現(xiàn)應(yīng)用程五序執(zhí)行梯后即產(chǎn)怕生主線哀程,而牛主線程踢可以衍生出其他爐線程。一堂個應(yīng)用程惱序可以依巴需要而造篩出多個線桌程對象惠,每一欲個線程有開始執(zhí)色行后即劇被排入CPU淋的執(zhí)行瘦周期中驗,這些追線程可英能被建呢立后開顏始執(zhí)行,圾直到應(yīng)倆用程序爽結(jié)束;羨也有可館能執(zhí)行雪完工作后在應(yīng)壇用程序嫂結(jié)束前甩就結(jié)束枯掉,實圖際的情后況看具體需求而舅定。Tthr捎ead類偽中常用的張方法Cre凝ate米:建立鄉(xiāng)豐線程。祥使用此壓方法可派建立線濃程,有輩1個參灑數(shù),若貫設(shè)成T水rue齒,表示古建立后漆不立即處執(zhí)行;集若設(shè)成堅Fal漠se,愿則表示修一建立器后馬上于執(zhí)行。con徒str寺uct理or敢Cre雜ate丟(Cr大eat關(guān)eSu梅spe竄nde構(gòu)d:濁Boo祖lea裹n);Free嫂:釋放線架程,線程川程序代碼累將從內(nèi)存胳中被刪除pro今ced威ure柜Fr磁ee;Res貓ume復(fù):執(zhí)行叔程序代圣碼。若捧線程暫漲停時,劍使用此史指令再號次激活紫p貸roc沸edu顛re予Res泄ume拖;Sus循pen睡d:暫鳥停線程貿(mào)。將執(zhí)伯行中的箭線程暫彼停pro捎ced欠ure嫂Su固spe雀nd;varSeco宰ndPr杰oces簡s:T葡MyTh剃read脂;{叫TMyT超hrea哀dis蜘ac剃usto惡mde評scen然dant魚of沸TThr煮ead專}beg子inSeco真ndPr境oces躍s:=希TMy麥Thre維ad.C植reat董e(Tr貴ue);踢{c豎reat縮慧esu久spen籠ded械-sec錯ondp便roce煙ssd敢oes祝not任run國yet追}Seco話ndPr盛oces宇s.Pr撐iori居ty:柔=tp弄Lowe巡壽r;{曲set暈the同pri涼orit狼yto晚low跳ert飲han獸norm窮al}Seco德ndPr腎oces廟s.Re忌sume寧;{鉤now哭r(nóng)un靈the村thre槽ad}end;第4章壯串行認(rèn)通信中嘩的字符陰與字節(jié)1、字街符與字柳節(jié)2、字萌節(jié)數(shù)據(jù)牽的傳送待與接收1、字符奴與字節(jié)字符和字晚節(jié)的差別Delp林hi中的臉字符串種療類及處理道函數(shù)中英文字受符串長度盟計算字符和字剃節(jié)的差別Win匯dow固s支持釘?shù)淖址芳袉螁栕址?、雙字薯節(jié)字符五集及U仗niC宜ode黎字符集喘,在西淹方國家做使用W蹈ind師ows鴨系統(tǒng)基卡本使用痰單字符拉集,每妥一個字犬符都使凡用一個艇字節(jié)來紐奉表示;帶而亞洲織國家由鄉(xiāng)豐于字符滲無法單時用一個懂字節(jié)表勻示,因陜此使用智雙字節(jié)諷字符集野,其中織每個字思符使用削雙字節(jié)媽字符集勸。UniC壘odeUni英Cod票e涵蓋賞了世界傘上所有歡國家的從字符碼謊,每個轉(zhuǎn)字符用畜一個唯灘一的內(nèi)銹碼來表巾示,其村特點是肚所有的叮字符以安兩個字脂節(jié)表示準(zhǔn),不僅泊中文使趟用兩個欺字節(jié),悅英文也弄使用兩撤個字節(jié)串口通就信過程訴中,如姻果傳送升的是一速個英文坊字節(jié)組跌成,只勉要一個牢字節(jié)就噸可以將鍵信息傳局送出去騰;如果拴傳送的自是雙字疊節(jié)的字濾符(如凈中文)老,完整盜的字符剪傳送就霧必須是夠兩個字崖節(jié)。Del扛phi腳中的字叨符串種限類及處魯理函數(shù)Chr(扣x):返繞回X參數(shù)依的字符Ord嘩(x)川:返回脊x參數(shù)趁所列的感序數(shù),參一般用乎來解讀訂字符在辣ASC紅II碼跳中的序按數(shù)Pos輕(su際bst逼r,s湖tr)餓:返回刪str籌中,s娘ubs悲tr出水現(xiàn)的位咱置,若而找不到揀則返回碑0StrP婆os(s賠tr1,章str2哲):返回悔str2徒在str葬1出現(xiàn)的碗第一位置孔的指針,叼無則返回訂nilCop類y(s框tr,椒ind膝ex,舉cou捎nt)刻:返回芳str扛參數(shù)中鍛,索引決ind議ex開腸始的c腐oun慰t數(shù)目旁的字串Del尾ete代(st伍r,i利nde畜x,c捏oun禽t):透刪除s鵲tr字濱串中,帽由in策dex澤所指定紛的開始券位置的量cou育nt數(shù)寶目的字賄串Len夕gth儲(st找r):燈返回字久串st盼r的長些度Set遼Len威gth誤(st譜r,n寶ewl反en)個:設(shè)置相str剖的長度Valu困e(st佛r,va產(chǎn)lue,珠code殖):將s神tr轉(zhuǎn)成原數(shù)值va巨lue,司code益表示發(fā)生件錯誤的位國置Str奶(va詠lue趨,st倒r):Tri葵m(s尊tr)隊,Tr門imR袖igh女t(s軌tr)株,Tr獵imL行eft前(st砍r):民去空格Stri飛ngRe芳plac暖e(st權(quán)r,ol逐dpat箱tern脅,new肅patt拐ern)納:替換Inse根rt(s養(yǎng)1,s2抄,ind目ex):泡s1插入執(zhí)s2的第摸inde休x位置中英文巾字符串眾長度計戴算TypeMaximumlengthMemoryrequiredUsedforShortString255characters2to256bytesbackwardcompatibilityAnsiString~2^31characters4bytesto2GB8-bit(ANSI)charactersWideString~2^30characters4bytesto2GBUnicodecharacters;multiuserserversandmulti-languageapplicationsVarIns弄trW堅:Wi源deS唉tri陪ng;Inst良rA:A青NSIS堆trin古g;Ins主tr:磨str獄ing猶;Beg僚inInst嘩r:=e洗dit1桌.tex址t;Ins慎trW汪:=e姜dit載1.t逃ext網(wǎng);Ins攤trA幅:=e碎dit交1.t江ext俱;edi芹t2.云tex泰t:=掌int決tos胸tr(奧len從gth勻(In財str硬));edit弟3.te際xt:=恢intt炭ostr制(len匙gth(談Inst顛rW))鞏;edit貿(mào)4.te嗽xt:=亮intt蔑ostr痰(len徐gth(靈Inst殘rA))像;End;現(xiàn)象純英文字拉符串使用蝴三種字符薄串的計算括結(jié)果相同池,顯示出寄一樣的字帥符串長度純中文字灶符串時,保Stri昏ng和A番NSIS生trin藝g所呈現(xiàn)沸的結(jié)果一好樣,但W伶ideS疑trin勝g的字符除串長度只地有它們的捎一半中英文混瓶合時,S某trin惹g及AN猴SISt捕ring嶼所呈現(xiàn)的昌結(jié)果還是仰一樣,中礦文占兩個路字符和英否文占一個摧字符;但追Wide倦Stri挺ng類型翁中英文和愁中文都只捷占一個字廟符,結(jié)論Len唯gth教函數(shù)在洋不同的嫂類型下韻所作的托計算是湊不一樣伍的Delp煮hi的確雀是以St速ring續(xù)作為默認(rèn)遇的長字符派串類型字符串轉(zhuǎn)的長度日計算可境以用W歉ide趁Str圍ing陪類型來竊進(jìn)行,韻在這種祥情況下親,一個慰中英文寺字符均駕被計算程為一個凱字符實際所劇

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論