亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > Delphi > 正文

Delphi中串口通信的實(shí)現(xiàn)

2019-11-18 18:51:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Delphi是一種具有功能強(qiáng)大、簡(jiǎn)便易用和代碼執(zhí)行速度快等優(yōu)點(diǎn)的可視化快速應(yīng)用開(kāi)發(fā)工具,它在構(gòu)架企業(yè)信息系統(tǒng)方面發(fā)揮著越來(lái)越重要的作用,許多程序員愿意選擇 Delphi作為開(kāi)發(fā)工具編制各種應(yīng)用程序。但是,美中不足之處是 Delphi沒(méi)有自帶的串口通信控件,在它的幫助文檔里也沒(méi)有提及串口通信,這就給編制通信程序的開(kāi)發(fā)人員帶來(lái)許多不便?!?BR>
目前,利用 Delphi實(shí)現(xiàn)串口通信的常用的方法有 3種:一是利用控件,如 MSCOMM控件和 SPCOMM控件;二是使用 API函數(shù);三是調(diào)用其他串口通信程序。其中利用 API編寫串口通信程序較為復(fù)雜,需要掌握大量的通信知識(shí)。相比較而言,利用 SPCOMM控件則相對(duì)較簡(jiǎn)單,并且該控件具有豐富的與串口通信密切相關(guān)的屬性及事件,提供了對(duì)串口的各種操作,而且還支持多線程。下面本文結(jié)合實(shí)例詳細(xì)介紹 SPCOMM控件的使用?!?BR>
SPCOMM的安裝 

1.選擇下拉菜單 Component中的 Install Component選項(xiàng),在 Unit file name處填寫 SPCOMM控件所在的路徑,其他各項(xiàng)可用默認(rèn)值,點(diǎn)擊 OK按鈕?!?BR>
2.安裝后,在 System控件面板中將出現(xiàn)一個(gè)紅色控件 COM。現(xiàn)在就可以像 Delphi自帶控件一樣使用 COM控件了?!?BR>
SPCOMM的屬性、方法和事件 

1.屬性 

●CommName:表示 COM1、 COM2等串口的名字; 

●BaudRate:根據(jù)實(shí)際需要設(shè)定的波特率,在串口打開(kāi)后也可更改此值,實(shí)際波特率隨之更改; 

●ParityCheck:表示是否需要奇偶校驗(yàn); 

●ByteSize:根據(jù)實(shí)際情況設(shè)定的字節(jié)長(zhǎng)度; 

●Parity:奇偶校驗(yàn)位; 

●StopBits:停止位; 

●SendDataEmpty:這是一個(gè)布爾型屬性,為 true時(shí)表示發(fā)送緩存為空,或者發(fā)送隊(duì)列里沒(méi)有信息;為 false時(shí)表示發(fā)送緩存不為空,或者發(fā)送隊(duì)列里有信息?!?BR>
2.方法 

●Startcomm方法用于打開(kāi)串口,當(dāng)打開(kāi)失敗時(shí)通常會(huì)報(bào)錯(cuò)。錯(cuò)誤主要有 7種:⑴串口已經(jīng)打開(kāi);⑵打開(kāi)串口錯(cuò)誤;⑶文件句柄不是通信句柄;⑷不能夠安裝通信緩存;⑸不能產(chǎn)生事件;⑹不能產(chǎn)生讀進(jìn)程;⑺不能產(chǎn)生寫進(jìn)程; 

●StopComm方法用于關(guān)閉串口,沒(méi)有返回值; 

●WriteCommData(pDataToWrite: PChar;dwSizeofDataToWrite:Word )方法是個(gè)帶有布爾型返回值的函數(shù),用于將一個(gè)字符串發(fā)送到寫進(jìn)程,發(fā)送成功返回 true,發(fā)送失敗返回 false。執(zhí)行此函數(shù)將立即得到返回值,發(fā)送操作隨后執(zhí)行。該函數(shù)有兩個(gè)參數(shù),其中 pDataToWrite是要發(fā)送的字符串, dwSizeofDataToWrite是發(fā)送字符串的長(zhǎng)度?!?BR>
3.事件 

●OnReceiveData :PRocedure (Sender: TObject;Buffer: Pointer;BufferLength: Word) of object 

當(dāng)有數(shù)據(jù)輸入緩存時(shí)將觸發(fā)該事件,在這里可以對(duì)從串口收到的數(shù)據(jù)進(jìn)行處理。 Buffer中是收到的數(shù)據(jù), BufferLength是收到的數(shù)據(jù)長(zhǎng)度?!?BR>
●OnReceiveError : procedure(Sender: TObject; EventMask : DWORD) 

當(dāng)接收數(shù)據(jù)出現(xiàn)錯(cuò)誤時(shí)將觸發(fā)該事件?!?BR>
SPCOMM的使用 

下面是一個(gè)利用 SPCOMM控件的串口通信的例子?!?BR>
以實(shí)現(xiàn) PC機(jī)與單片機(jī) 8051之間的通信為例,首先要調(diào)通它們之間的握手信號(hào)。假定它們之間的通信協(xié)議是: PC到 8051一幀數(shù)據(jù) 6個(gè)字節(jié), 8051到 PC一幀數(shù)據(jù)也為 6個(gè)字節(jié)。當(dāng) PC發(fā)出( F0,01,FF,FF,01,F0)后 8051能收到一幀( F0,01,FF,FF,01,F0),表示數(shù)據(jù)通信握手成功,兩者之間就可以按照協(xié)議相互傳輸數(shù)據(jù)?!?BR>
創(chuàng)建一個(gè)新的工程 COMM.DPR,把窗體的 NAME屬性定為 FCOMM,把窗體的標(biāo)題定義為測(cè)試通信,添加相應(yīng)的控件。

1.設(shè)定 COMM1屬性: 

●波特率: 4800; 

●奇偶校驗(yàn)位:無(wú); 

●字節(jié)長(zhǎng)度: 8; 

●停止位: 1; 

●串口: COM1。 

Memo1中將顯示發(fā)送和接收的數(shù)據(jù)。將新的窗體存儲(chǔ)為 Comm.pas。 

2.編寫源代碼 

//變量說(shuō)明 

var 

fcomm: TFCOMM; 

viewstring:string; 

i:integer; 

rbuf,sbuf:array[16] of byte; 

//打開(kāi)串口 

procedure TFCOMM.FormShow(Sender: TObject); 

begin 

comm1.StartComm; 

end; 

//關(guān)閉串口 

procedure TFCOMM.FormClose(Sender: TObject; var Action: TCloseAction); 

begin 

comm1.StopComm; 

end; 

//自定義發(fā)送數(shù)據(jù)過(guò)程 

procedure senddata; 

var 

i:integer; 

commflg:boolean; 

begin 

viewstring:=‘’ ; 

commflg:=true; 

for i:=1 to 6 do 

begin 

if not fcomm.comm1.writecommdata(@sbuf[i],1) then 

begin 

commflg:=false; 

break; 

end; 

//發(fā)送時(shí)字節(jié)間的延時(shí) 

sleep(2); 

viewstring:=viewstring+ inttohex(sbuf[i],2)+‘’ ; end; 

viewstring:=‘發(fā)送’+ viewstring; 

fcomm.memo1.lines.add(viewstring); 

fcomm.memo1.lines.add(‘’ ); 

if not commflg then messagedlg(‘發(fā)送失敗 !’ ,mterror,[mbyes],0); 

end; 

//發(fā)送按鈕的點(diǎn)擊事件 

procedure TFCOMM.Btn_sendClick(Sender: TObject); 

begin 

sbuf[1]:=byte($ f0); //幀頭 

sbuf[2]:=byte($ 01); //命令號(hào) 

sbuf[3]:=byte($ ff); 

sbuf[4]:=byte($ ff); 

sbuf[5]:=byte($ 01); 

sbuf[6]:=byte($ f0); //幀尾 

senddata;//調(diào)用發(fā)送函數(shù) 

end; 

//接收過(guò)程 

procedure TFCOMM.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word); 

var 

i:integer; 

begin 

viewstring:=‘’ ; 

move(buffer^,pchar(@rbuf^),bufferlength); 

for i:=1 to bufferlength do 

viewstring:=viewstring+ inttohex(rbuf[i],2)+‘’ ; 

viewstring:=‘接收’+ viewstring; 

memo1.lines.add(viewstring); 

memo1.lines.add(‘’ ); 

end; 

如果 memo1上顯示發(fā)送 F0 01 FF FF 01 F0和接收到 F0 01 FF FF 01 F0,這表示串口已正確地發(fā)送出數(shù)據(jù)并正確地接收到數(shù)據(jù),則串口通信成功。

上一篇:Delphi的TRegistry注冊(cè)表類方法詳解

下一篇:在DELPHI程序中自動(dòng)設(shè)置ODBC數(shù)據(jù)源

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

影音先锋中文在线观看| 熟年交尾五十路视频在线播放| 亚洲欧美精品| 久久天堂av综合合色蜜桃网| www在线视频| 国产一二三av| 一区二区三区色| 亚洲伊人婷婷| 麻豆一区二区在线| 日韩亚洲综合在线| www.4438全国最大| 精品久久久久久久久久久下田| 自拍亚洲欧美老师丝袜| 日韩精品成人一区二区三区| 影视亚洲一区二区三区| 99综合视频| 国产精品极品美女在线观看免费| 欧美a v在线播放| 草民电影神马电影一区二区| 久久综合九色欧美狠狠| 91av视频免费观看| 精品无码一区二区三区爱欲| 国产呦萝稀缺另类资源| 日韩精品免费在线播放| 日本欧美www| 国产一区二区精品福利地址| 久久久精品网| 国产黄色大片在线观看| 久久99国产精品久久99| 人xxxx性xxxxx欧美| 亚洲一区二区三区精品动漫| 成人短片线上看| 在线播放中文一区| 美国黄色a级片| 欧美天堂一区二区| 色喇叭免费久久综合网| 精品亚洲一区二区三区在线观看| 国产美女性感在线观看懂色av| 嗯用力啊快一点好舒服小柔久久| 91精品美女| 中文字幕五月天| av女优在线| 日本三级一区二区三区| www.成人69.com| 在线播放三级网站| 久久久久久久影院| 最近中文视频在线| 97精品国产综合久久久动漫日韩| 精品国产免费观看一区| 亚洲激情图片一区| 欧美视频精品在线观看| 亚洲色大成网站www| 91午夜在线观看| xxxxxhd亚洲人hd| 欧美日韩亚洲一区| 久久九九有精品国产23| 免费网站观看www在线观| 中文字幕亚洲欧美在线| 久久成人av网站| 国产91白丝在线播放| 欧美国产一区视频在线观看| 中文字幕免费高清电视剧网站在线观看| 成人免费淫片在线费观看| av激情成人网| 99久久婷婷国产综合精品青牛牛| www亚洲成人| 亚洲第一精品在线观看| 人妻互换一二三区激情视频| 亚洲最新在线视频| 欧美激情福利| 一级黄色免费网站| www.久久久久久久久久| 欧美图片一区二区三区| av大片在线播放| 国产精品一区免费在线| 瑜伽美女视频| 欧美一区二区网站| 99精品国产99久久久久久福利| 国产精品极品国产中出| 国产精品亚洲第一| 国产又粗又爽又黄的视频| 亚洲成人福利视频| 黄色三级中文字幕| 一区二区三区四区五区| 成人黄色电影网址| 免费看黄色一级视频| 国产一区二区三区久久悠悠色av| 国产一区二区在线观看免费视频| 日韩欧美的一区| 97福利一区二区| 天堂在线视频免费| 久久嫩草精品久久久精品| 日本五级黄色片| 国产精品久久久久三级| 精品美女国产在线| 私拍精品福利视频在线一区| 久久国产尿小便嘘嘘| 九草视频在线观看| 成人爱爱电影网址| 日韩加勒比系列| 国产精品精品久久久| 不卡的电视剧免费网站有什么| 懂色中文一区二区三区在线视频| 久久精品视频9| 日本午夜激情视频| 免费观看国产精品| jazzjazz国产精品久久| 国产一区二区在线观| 国产亚洲一区二区精品| 国产鲁鲁视频在线观看免费| 久久综合999| 日韩欧美一区二区三区免费看| 欧美少妇bbb| 欧美成人午夜激情视频| 亚洲国产精品人久久电影| 九九热这里只有精品免费看| 国产色在线 com| 三上悠亚一区| 777精品久无码人妻蜜桃| 91精品国产91久久久久久密臀| 星空大象在线观看免费播放| a优女a优女片| 国产女人被狂躁到高潮小说| 成人免费视频视频| 超黄网站在线观看| 亚洲视频在线二区| 欧美激情黑白配| 日韩一区二区视频在线| 午夜精品视频在线| 污污网站在线| 亚洲已满18点击进入在线看片| 欧美日韩中文一区二区| 成人久久久精品国产乱码一区二区| 国产精品美女久久久久aⅴ国产馆| 精品一区在线观看视频| 在线电影福利片| 尤物精品在线| 国产一级粉嫩xxxx| 伊人中文字幕在线观看| 狠狠色噜噜狠狠狠狠色吗综合| 日韩精品一级中文字幕精品视频免费观看| 国产精品自产拍在线观| 日韩在线免费电影| 国产日韩欧美久久| 欧美日韩国产色站一区二区三区| 给我免费观看片在线电影的| 色老板在线视频一区二区| 日操夜操天天操| 久久精品国产精品| 午夜久久久久久电影| 色狠狠av一区二区三区香蕉蜜桃| 亚洲精品午夜久久久| 噜噜噜在线视频| 永久免费不卡在线观看黄网站| 久久精品一区二区三区四区五区| 欧美不卡一区二区三区四区| 久久久久久久综合色一本| 午夜在线网站| 西西人体一区二区| 亚洲国产精品二十页| 在线观看av黄网站永久| 超碰97在线看| av免费播放网站| 在线播放亚洲| 欧美大胆性生话| 毛片基地黄久久久久久天堂| 亚洲小说区图片区都市| free性欧美16hd| h文在线观看免费| 草碰在线视频| 国产日韩专区| 色国产综合视频| 精品日本一区二区三区| 欧美理论影院| 97久久精品人人爽人人爽蜜臀| 成年人视频免费看| 精品国产91久久久久久老师| wwwwww在线观看| 亚洲二区自拍| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲综合五月天婷婷丁香| 精品一区二区三区视频在线观看| 亚洲免费专区| 九九精品在线观看| 一区二区激情| 麻豆久久久9性大片| 超碰超碰在线观看| 欧美日韩免费不卡视频一区二区三区| 美女高潮黄又色高清视频免费| 亚洲福利精品在线| 福利av痴女| 成人av在线资源| 成年网址网站在线观看| 亚洲另类在线观看| 日韩在线观看电影完整版高清免费悬疑悬疑| 久久精品国产欧美亚洲人人爽| 中文字幕欧美日韩一区| 日本三级片在线观看| 激情视频亚洲| 欧美日韩在线播放一区二区| 日本免费不卡| 天天操天天擦| 天堂av2024| 亚洲伦理一区二区| 怡红院精品视频在线观看极品| 国产精品白丝jk白祙喷水网站| 国产91精品看黄网站在线观看| 欧美69精品久久久久久不卡| 爱啪啪综合导航| 午夜精品一区二区三区在线观看| 中文字幕av网址| 国产精品美女一区二区三区| 国产丝袜高跟一区| 精品日韩欧美一区二区| 亚洲免费在线观看视频| 亚洲欧美一区二区原创| 亚洲精品黑牛一区二区三区| 国产女主播喷水视频在线观看| 偷拍25位美女撒尿视频在线观看| 亚洲欧洲一区二区三区| 999国产精品999久久久久久| 日韩a级作爱片一二三区免费观看| 久久午夜鲁丝片午夜精品| 欧美wwwwwww| 丁香资源影视免费观看| 一级片在线观看| 亚洲美腿欧美激情另类| 久久成人av| 亚洲国产精品免费在线观看| 四虎永久在线观看免费网站网址| 欧美国产欧美亚州国产日韩mv天天看完整| 日韩脚交footjobhd| 欧美破处大片在线视频| 韩国福利视频一区| 欧美天堂视频| 亚州成人av在线| 国产区卡一卡二卡三乱码免费| 国产精品日韩精品欧美在线| 国产精品99爱免费视频| 欧美视频网址| www.尤物.com| 在线观看亚洲精品福利片| 亚洲欧洲中文日韩久久av乱码| 亚洲视频在线免费播放| 蜜乳av一区二区三区| 国产精品免费无码| 亚洲精品乱码日韩| 国产欧美88| 四色最新网址| 久久综合久久综合这里只有精品| 在线观看久久av| 精品国产免费人成电影在线观...| 清纯唯美亚洲综合| 亚洲一二三精品| 国产成人无码a区在线观看视频| 黄色片一区二区三区| 91精品国产乱码久久久张津瑜| 亚洲国产精品久久人人爱| 六月婷婷色综合| 欧美精品一区二区久久久| 国产成年人在线观看| 国产高清在线a视频大全| 欧美精品久久天天躁| 日韩精品自拍偷拍| 国产精品久久精品牛牛影视| 鲁丝一区二区三区| 亚洲韩国一区二区三区| 欧美人乱大交xxxxx| 国产精品美女视频网站| 精品人人视频| 欧美黑人巨大xxxx猛交| 一区二区日韩av| 不卡视频一二三四| 欧美aaa在线观看| 中文字幕欧美日韩在线| 亚洲成a人片77777在线播放| 一区二区免费播放| 国产一区二区三区四区五区六区| 中文字幕一区二区日韩精品绯色| 精品久久久久一区二区| 欧美黑人疯狂性受xxxxx野外| 无圣光视频在线观看| 亚洲欧美日韩国产一区二区| 精品国产sm最大网站免费看| 337p亚洲精品色噜噜狠狠| 国产高清亚洲| 天天躁日日躁狠狠躁av麻豆男男| 免费成人黄色网| 国产视频1区2区3区| 国产精品入口麻豆免费观看| 欧美视频免费看欧美视频| 一本到高清视频免费精品| 国产午夜精品理论片| 亚洲欧美日韩不卡| 亚洲精品一区国产| 日本欧美一二三区| 国产精品视频精品| 婷婷av一区二区三区| 免费看欧美黑人毛片| 中文字幕第7页| 久久久九九九九| av在线免费不卡| 亚洲午夜精品久久久久久性色| 欧美色图另类小说| 国产美女久久久久久| xxx在线视频| 日本搞黄视频| 日本免费高清视频| 人人妻人人澡人人爽人人欧美一区| 91精彩在线视频| av电影天堂一区二区在线| 国产区亚洲区欧美区| 日韩欧美精品网址| 日本污视频在线观看| 精品一区二区电影| 亚洲a∨一区二区三区| 色婷婷av久久久久久久| 国产精品中文字幕一区二区三区| 国产一区二区精品丝袜| 91国内产香蕉| 337p粉嫩大胆噜噜噜鲁| 新片速递亚洲合集欧美合集| 黄色av免费| 中文欧美日本在线资源| 精品黄色免费中文电影在线播放| 日韩69视频在线观看| 超碰97在线资源| 妞干网免费在线视频|