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

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

用API函數(shù)實(shí)現(xiàn)串行通訊

2019-11-17 05:31:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  以往的DOS系統(tǒng)是通過(guò)DOS中斷和BIOS中斷向用戶提供串行接口的通訊能力。在Windows環(huán)境下,C++的開發(fā)工具既沒(méi)有提供象DOS和BIOS中那樣專門的串行通訊控制方法,也不答應(yīng)用戶直接控制串口的中斷。

為了保證資源共享,Windows系統(tǒng)完全接管了各種硬件資源,使用中斷來(lái)控制端口將破壞系統(tǒng)的多任務(wù)性,使系統(tǒng)的穩(wěn)定性受到影響。但Windows同時(shí)也提供了功能強(qiáng)大的API函數(shù)使用戶能間接的控制串行通訊。

1、實(shí)現(xiàn)串行通訊的相關(guān)API函數(shù)

API函數(shù)不僅提供了打開和讀寫通訊端口的操作方法,還提供了名目繁多的函數(shù)以支持對(duì)串行通訊的各種操作。常用函數(shù)及作用如表5-1所示。

表5-1 常用串行通訊API函數(shù)及其作用

函數(shù)名  作用
CreateFile 打開串口
GetCommState  檢測(cè)串口設(shè)置
SetCommState 設(shè)置串口
BuilderCommDCB 用字符串中的值來(lái)填充設(shè)備控制塊
GetCommTimeouts 檢測(cè)通信超時(shí)設(shè)置
SetCommTimeouts 設(shè)置通信超時(shí)參數(shù)
SetCommMask 設(shè)定被監(jiān)控事件
WaitCommEvent 等待被監(jiān)控事件發(fā)生
WaitForMultipleObjects 等待多個(gè)被監(jiān)測(cè)對(duì)象的結(jié)果
WriteFile 發(fā)送數(shù)據(jù)
ReadFile  接收數(shù)據(jù)
GetOverlappedResult 返回最后重疊(異步)操作結(jié)果
PurgeComm 清空串口緩沖區(qū),退出所有相關(guān)操作
ClearCommError 更新串口狀態(tài)結(jié)構(gòu)體,并清除所有串口硬件錯(cuò)誤
CloseHandle  關(guān)閉串行口

2、打開串口

函數(shù)CreateFile原本用于打開文件,但它同樣可用于打開一個(gè)通信端口。與系統(tǒng)中其他對(duì)象一樣,通信端口也是用句柄來(lái)標(biāo)識(shí)的。CreateFile函數(shù)返回被操作的通信端口句柄,其調(diào)用方法如下:

HANDLE CreateFile (

LPCTSTR lpFileName,    //指向文件名字符串的指針

DWord dwDesireaccess,     //操作模式

DWORD dwShareMode,      //共享方式

LPSECUR99vY_ATTRIBUTES  lpSecurityAttributes,            

//指向安全屬性的指針

DWORD dwCreationDistribution,//文件建立方式

DWORD dwFlagsAndAttributes  //文件屬性

HANDLE hTemplateFile)      //模板文件句柄

lpFileName:指向一個(gè)以NULL結(jié)束的字符串,該串指定了要?jiǎng)?chuàng)建、打開或截?cái)嗟奈募?、管道、通信源、磁盤設(shè)備或控制臺(tái)的名字。當(dāng)用CreateFile打開串口時(shí),這個(gè)參數(shù)可用“COM1”指定串口1,用“COM2”指定串口2,依此類推。

dwDesireAccess: 指定對(duì)文件訪問(wèn)的類型,該參數(shù)可以為GENERIC_READ(指定對(duì)該文件的讀訪問(wèn)權(quán))或ENERIC_WR99vE(指定該文件的寫訪問(wèn)權(quán))兩個(gè)值之一或同時(shí)為為這兩個(gè)值。用ENERIC_READGENERIC_WR99vE則指定可對(duì)串口進(jìn)行讀寫;

dwShareMode:指定此文件可以怎樣被共享。因?yàn)榇锌诓恢С秩魏喂蚕砟J?,所以dwShareMode必須設(shè)為0;

lpSecurityAttributes定義安全屬性,一般不用,可設(shè)為NULL。Win 9x下該參數(shù)被忽略;

dwCreationDistribution定義文件創(chuàng)建方式, 對(duì)串口必須設(shè)為OPEN_EXISTING,表示打開已經(jīng)存在的文件;

dwFlagsAndAttributes為該文件指定定義文件屬性和標(biāo)志,這個(gè)程序中設(shè)為FILE_FLAG_OVERLAPPED,表示異步通信方式;

hTemplateFile 指向一個(gè)模板文件的句柄,串口無(wú)模板可言,設(shè)為NULL。在 Windows 9x下該參數(shù)必須為NULL。

用異步讀寫方式打開串口1的函數(shù)調(diào)用如下:

m_hComm = CreateFile(“COM1”,       //打開串口1

                     GENERIC_READ GENERIC_WR99vE,//讀寫方式  


                      0,              //不能共享

                     NULL,         //不用安全結(jié)構(gòu)

                     OPEN_EXISTING,      //打開已存在的設(shè)備                                                   

                     FILE_FLAG_OVERLAPPED,   //異步方式

                     0);              //無(wú)模板

串口被成功打開時(shí),返回其句柄,否則返回INVALID_HANDLE_VALUE(0XFFFFFFFF)。

  

3、串口設(shè)置

  

第一次打開串口時(shí),串口設(shè)置為系統(tǒng)默認(rèn)值,函數(shù)GetCommState和SetCommState可用于檢索和設(shè)定端口設(shè)置的DCB(設(shè)備控制塊)結(jié)構(gòu),該結(jié)構(gòu)中BaudRate、ByteSize、StopBits和Parity字段含有串口波特率、數(shù)據(jù)位數(shù)、停止位和奇偶校驗(yàn)控制等信息。程序中可先用GetCommState檢索端口的當(dāng)前設(shè)置,修改其中的部分字段后再用SetCommState進(jìn)行端口設(shè)定。這樣可不必構(gòu)造一個(gè)完整的DCB結(jié)構(gòu)。

下面介紹幾個(gè)主要的函數(shù)和結(jié)構(gòu)體:

(1)GetCommState

BOOL  GetCommState( hCommDev, lpdcb);

參數(shù)hCommDev標(biāo)識(shí)通信設(shè)備,應(yīng)使用CreateFile返回的句柄。Lpdcb是指向DCB結(jié)構(gòu)的指針,函數(shù)調(diào)用后當(dāng)前串口配置信息將被保存在這個(gè)結(jié)構(gòu)內(nèi)。假如函數(shù)成功返回值為TRUE;否則返回值為FALSE。SetCommState用法與GetCommState相似,在此不再重復(fù)。DCB結(jié)構(gòu)定義如下(只介紹主要的幾項(xiàng)):

       typedef  strUCt _ DCB{

              ……

              DWORD   BardRate;      //波特率的設(shè)置

              BYTE     ByteSize;     //數(shù)據(jù)位的個(gè)數(shù)

              BYTE     Parity;         //是否有奇偶校驗(yàn)位


              BYTE     StopBits;       //停止位的個(gè)數(shù)

              ……

              }DCB;

(2)SetCommTimeouts

BOOL  SetCommTimeouts( hCommDev, lpctmo );

Lpctmo指向包含新的超時(shí)參數(shù)的COMMTIMEOUTS結(jié)構(gòu)。COMMTIMEOUTS結(jié)構(gòu)定義如下:

typedef  struct _ COMMTIMEOUTS{

DWORD  ReadIntervalTimeout;

DWORD  ReadTotalTimeoutMultiplier;

DWORD  ReadTotalTimeoutconstant;

DWORD  WriteTotalTimeoutMultiplier;

DWORD  WriteTotalTimeoutconstant;

}COMMTIMEOUTS, LPCOMMTIMEOUTS;

ReadIntervalTimeout:  以毫秒為單位指定通信線上兩個(gè)字符到達(dá)之間的最大時(shí)間。在ReadFile操作其間,收到第一個(gè)字符時(shí)開始計(jì)算時(shí)間。若任意兩個(gè)字符到達(dá)之間的間隔超過(guò)這個(gè)最大值,ReadFile操作完成,返回緩沖數(shù)據(jù)。0值表示不用間隔限時(shí)。若該成員為MAXDWORD,且ReadTotalTimeoutconstant和ReadTotalTimeou

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
一区二区三区四区不卡| 日韩成人一级片| 亚洲成a人在线观看| 在线观看av影片| 岛国一区二区在线观看| 一级免费在线观看| 欧美美女色图| 欧美精品自拍偷拍动漫精品| 午夜一区二区三区不卡视频| 日本不卡二区| 91成人综合网| 影音先锋国产| 在线免费看污网站| 伊人色综合久久天天| 日本一区二区欧美| 黄页网站大全一区二区| 精品亚洲国产成人av制服丝袜| 都市激情综合| 一本到12不卡视频在线dvd| 妞干网在线视频| 可播放的18gay1069| 色av中文字幕| xxxxhd欧美精品| 欧美亚洲日本在线观看| 久久亚洲国产| 搡女人真爽免费午夜网站| 精品国产综合| 亚洲免费电影在线| 九色porny丨入口在线| 日本在线www| 人妻无码视频一区二区三区| 黄色的毛片免费| 黄色网战在线观看| 97婷婷大伊香蕉精品视频| 最新中文字幕一区二区三区| 在线视频观看亚洲| 成人免费观看在线视频| 国产成人在线观看免费网站| 亚洲精品欧洲| 又色又爽又黄18网站| 亚洲国产97在线精品一区| 国产免费不卡视频| 欧美中文字幕在线观看视频| 黄色一级视频免费观看| 日韩在线视频观看正片免费网站| 婷婷成人综合网| 免费不卡中文字幕在线| 久久久久久欧美| 亚洲欧美日韩精品久久奇米色影视| 欧美成人一区二区视频| 在线成人一区| www.av精品| 四虎成人免费| 麻豆freexxxx性91精品| 久久艹这里只有精品| 美女视频免费精品| 色橹橹高清视频在线播放| 91丨九色丨国产丨porny| 欧美日韩亚洲丝袜制服| 国产精品一区二区av白丝下载| 丝袜国产在线| 人人爽人人爽人人片av| 欧美一级爆毛片| 久久精品性爱视频| 成人动漫一区二区三区| 日本精品另类| 亚洲最大网站| 视频一区二区精品的福利| а√天堂资源官网在线资源| 女人抽搐喷水高潮国产精品| 亚洲а∨天堂久久精品9966| 欧美天天综合色影久久精品| 精品亚洲一区二区三区四区五区高| 黄页免费欧美| 日本视频在线一区| 亚洲大片在线观看| xxxx69·hdxxxxx| 国产精品一区二三区| 国产精品一区二区av交换| 国产成人精品综合在线观看| 日韩理论电影| 国产同性人妖ts口直男| 日韩综合在线观看| 久久综合九色综合欧美就去吻| 粉嫩老牛aⅴ一区二区三区| 这里只有久久精品| 精品国产91久久久久久久妲己| 国产在线不卡精品| 亚洲一区二区三区乱码| av先锋资源网| 亚洲精品字幕在线| 久久精品国产清自在天天线| 亚洲精品少妇网址| 国产一级中文字幕| 久久国产这里只有精品| 欧美日韩aaaa| 亚洲综合在线第一页| 免费看男女www网站入口在线| 欧美日韩在线影院| 久久人人爽人人爽人人片亚洲| 91亚洲一线产区二线产区| 午夜在线a亚洲v天堂网2018| 麻豆免费视频网站入口| 91激情在线| 日本一区影院| 欧美在线日韩| 国产精品免费电影| 激情在线视频播放| www免费网站在线观看| 我不卡神马影院| 国产欧美日本亚洲精品一4区| 精品亚洲一区二区三区四区五区| 亚洲男人的天堂在线播放| 中文字幕第22页| 69堂免费精品视频在线播放| 久久久精品福利| 一区二区三区蜜桃| 欧美伊人亚洲伊人色综合动图| 亚洲色欲综合一区二区三区| 无码国产精品96久久久久| 欧美日本韩国一区二区三区| 九九热精品免费视频| 色呦呦视频在线| 国产激情视频一区二区三区| 一二三四在线观看视频韩国| 欧美性潮喷xxxxx免费视频看| 韩国一区二区电影| 东京热一区二区三区四区| 性色av香蕉一区二区| 欧美日韩中文字幕在线播放| 91丨九色丨蝌蚪富婆spa| 欧美综合社区国产| 免费看av不卡| 欧美大人香蕉在线| 免费男女羞羞的视频网站主页在线观看| www.亚洲男人天堂| 国产精品suv一区二区三区| 国产中文字幕91| 芬兰videosfree性少妇| 精品一区二区三区中文字幕视频| 国产污污在线观看| 亚洲天堂五月天| 97免费视频在线| 短视频在线观看| 香蕉乱码成人久久天堂爱免费| 欧美一区三区三区高中清蜜桃| 少妇性l交大片| h片在线免费| 欧美日韩色综合| 26uuu亚洲综合色欧美| 精品亚洲成a人在线观看| 国产69久久精品成人| av噜噜色噜噜久久| 国产91精品黑色丝袜高跟鞋| 国产精品少妇在线视频| 国产va在线视频| 美女扒开腿免费视频| www插插插无码免费视频网站| 99久久精品国产一区| 神马久久久久久久久久| 欧美电影免费观看| 麻豆成人在线| 在线观看www91| 97视频中文字幕| 国产又粗又猛又爽又| 男男激情在线| 国产综合视频在线| 91嫩草国产在线观看| 欧美日韩亚洲国产| 无码国产精品一区二区免费16| 大地资源二中文在线影视观看| 欧美激情va永久在线播放| 97久久人国产精品婷婷| 亚洲乱码国产乱码精品天美传媒| 国产这里只有精品| 91精品国产综合久久久久久漫画| 欧美video巨大粗暴18| 精品丰满人妻无套内射| 在线播放一区二区精品产| 国产主播一区二区| 免费在线不卡av| 国产欧美日本亚洲精品一4区| 一级特黄aaa大片在线观看| 欧美色手机在线观看| 亚洲熟妇一区二区三区| 精品一区二区三区免费爱| 精品欧美一区二区在线观看| 成人免费在线观看视频网站| 毛片视频免费观看| 色综合色综合网色综合| 中文精品一区二区| 亚洲午夜精品国产| 青春草在线视频免费观看| 欧美婷婷精品激情| 黑人极品ⅴideos精品欧美棵| 国产av无码专区亚洲av毛网站| 五月婷婷激情综合网| 免费黄色av网站| 国产一级在线免费观看| silk一区二区三区精品视频| 日本一二三区视频在线| 久久久久久久久久亚洲| www男人的天堂| 日韩亚洲欧美一区二区| 乱小说欧美综合| 精品视频在线观看一区二区| 91麻豆国产福利在线观看| 一级特黄a大片免费| 色婷婷久久99综合精品jk白丝| 中文字幕免费在线观看视频一区| 欧美男男青年gay1069videost| 亚洲男人的天堂一区二区| 国产精品天天摸av网| 亚洲最新av| 精品日本一区二区| 7777精品伊人久久久大香线蕉最新版| 亚洲三级在线观看视频| 激情欧美亚洲| 8v天堂国产在线一区二区| 国产精品久久色| 91精品国产色综合久久不卡蜜臀| 亚洲美女爱爱视频| 国产一区二区不卡老阿姨| 国产67194| 7777精品久久久大香线蕉| 久热在线视频观看| 精品无人区卡一卡二卡三乱码免费卡| 久草中文在线视频| 日韩和欧美一区二区三区| 精品国产三区在线| 超碰日本道色综合久久综合| 日本精品视频网站| 亚洲日本精品国产第一区| 99精品视频免费版的特色功能| av资源在线观看免费高清| 成人国产视频在线| 国产又粗又猛又爽又黄av| 碰草在线视频| 免费的av网站| 欧美一级大片在线免费观看| 国产69精品久久久久777| h片在线观看视频| 99自拍偷拍视频| 亚洲国产成人av好男人在线观看| 丝袜亚洲另类欧美重口| 国产农村妇女毛片精品久久莱园子| 国产精品啊v在线| 免费成人黄色| 黄色的视频在线免费观看| 午夜看片在线免费| 亚洲成a人片在线不卡一二三区| 久久这里只有| 伊伊综合在线| 美女黄视频在线播放| 午夜精品一区二区在线观看| 中文在线字幕免费观| 黄网站在线观看永久免费| 无码视频一区二区三区| 亚洲黄色在线| 男人午夜视频在线观看| 色狠狠av一区二区三区| 992tv成人国产福利在线| 亚洲国产一区二区三区网站| 欧美日韩一区二区在线观看视频| 日韩一区国产二区欧美三区| 久操视频在线免费观看| 久久精品动漫| 污视频在线免费观看| 欧美制服第一页| 日产精品久久久久久久性色| 亚洲高清视频在线| 欧美人成在线| 国产日韩欧美高清在线| 欧美aaaaa成人免费观看视频| 精品国产鲁一鲁一区二区三区| 久99久精品视频免费观看| 成人av网站在线播放| 成年人免费视频播放| 视频在线日韩| 欧美激情喷水| 成人亚洲视频在线观看| 免费日韩一区二区三区| 91影院在线免费观看| 秋霞网一区二区| 精品动漫3d一区二区三区免费| 麻豆传媒免费在线观看| 欧美日韩国产系列| 老司机午夜福利视频| 欧美一区二区三区的| а√天堂www在线а√天堂视频| 亚洲最新视频在线观看| 久草资源站在线观看| 尤物在线精品| 天堂中文在线看| 99re这里有精品| 2一3sex性hd| 日韩欧美视频一区| 成人亚洲精品久久久久软件| 亚洲巨乳在线| 98精品国产自产在线观看| 亚洲国产精品va在线看黑人| 日韩av在线免费播放| 成人在线视频一区二区三区| 国产网址在线观看| 久久久蜜桃一区二区| 国产网站在线免费观看| 亚洲精品国产片| 在线不卡中文字幕| 欧美精选午夜久久久乱码6080| 国产乱人伦精品一区二区在线观看| 来吧亚洲综合网| 亚洲美女免费精品视频在线观看| 中文精品一区二区三区| 性欧美丰满熟妇xxxx性久久久| 麻豆changesxxx国产| 国产尤物av一区二区三区| 综合天堂久久久久久久| 成人影视亚洲图片在线| 日韩高清欧美| 好妞色妞国产在线视频| 亚洲精品九九| 日本中文字幕高清| 免费视频拗女稀缺一区二区| 中文字幕在线三区| 97看剧电视剧大全| 韩曰欧美视频免费观看| 亚洲最大成人网4388xx| 特级西西444www大精品视频|