串口網(wǎng)絡(luò)編程(API編程一般方法)

串口網(wǎng)絡(luò)編程(API編程一般方法)

ID:38647631

大小:81.00 KB

頁數(shù):8頁

時間:2019-06-17

串口網(wǎng)絡(luò)編程(API編程一般方法)_第1頁
串口網(wǎng)絡(luò)編程(API編程一般方法)_第2頁
串口網(wǎng)絡(luò)編程(API編程一般方法)_第3頁
串口網(wǎng)絡(luò)編程(API編程一般方法)_第4頁
串口網(wǎng)絡(luò)編程(API編程一般方法)_第5頁
資源描述:

《串口網(wǎng)絡(luò)編程(API編程一般方法)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、VC中串口編程的流程1、關(guān)于串口編程的windows自帶的API函數(shù),只有Linux中的編程,也有相應(yīng)的庫函數(shù)供調(diào)用--后面章節(jié)有講解(1)CreateFile()--把串口的操作當(dāng)作一種文件的方式來處理用途:打開串口原型:HANDLECreateFile(LPCTSTRlpFileName,DWORDdwDesiredAccess,DWORDdwShareMode,LPSECURITY_ATTRIBUTESlpSecurityAttributes,DWORDdwCreationDistribution,DWORDdwFlagsAndAttributes,HANDLEhTem

2、plateFile);參數(shù)說明:-lpFileName:要打開的文件名稱。對串口通信來說就是COM1或COM2。-dwDesiredAccess:讀寫模式設(shè)置。此處應(yīng)該用GENERIC_READ及GENERIC_WRITE。-dwShareMode:串口共享模式。此處不允許其他應(yīng)用程序共享,應(yīng)為0。-lpSecurityAttributes:串口的安全屬性,應(yīng)為0,表示該串口不可被子程序繼承。-dwCreationDistribution:創(chuàng)建文件的性質(zhì),此處為OPEN_EXISTING.-dwFlagsAndAttributes:屬性及相關(guān)標(biāo)志,這里使用異步方式應(yīng)該用FIL

3、E_FLAG_OVERLAPPED。-hTemplateFile:此處為0。操作說明:若文件打開成功,串口即可使用了,該函數(shù)返回串口的句柄,以后對串口操作時即可使用該句柄。舉例:HANDLEhComm;hComm=CreateFile("COM1",//串口號GENERIC_READ

4、GENERIC_WRITE,//允許讀寫0,//通訊設(shè)備必須以獨占方式打開NULL,//無安全屬性O(shè)PEN_EXISTING,//通訊設(shè)備已存在FILE_FLAG_OVERLAPPED,//異步I/O0);//通訊設(shè)備不能用模板打開hComm即為函數(shù)返回的串口1的句柄。(2)CloseHandl

5、e()用途:關(guān)閉串口原型:BOOLCloseHandle(HANDLEhObjedt)參數(shù)說明:-hObjedt:串口句柄操作說明:成功關(guān)閉串口時返回true,否則返回false舉例:CloseHandle(hComm);(3)GetCommState()用途:取得串口當(dāng)前狀態(tài)原型:BOOLGetCommState(HANDLEhFile,LPDCBlpDCB);參數(shù)說明:-hFile:串口句柄-lpDCB:設(shè)備控制塊(DeviceControlBlock)結(jié)構(gòu)地址。此結(jié)構(gòu)中含有和設(shè)備相關(guān)的參數(shù)。此處是與串口相關(guān)的參數(shù)。由于參數(shù)非常多,當(dāng)需要設(shè)置串口參數(shù)時,通常是先取得串口的

6、參數(shù)結(jié)構(gòu),修改部分參數(shù)后再將參數(shù)結(jié)構(gòu)寫入。在此僅介紹少數(shù)的幾個常用的參數(shù):DWORDBaudRate:串口波特率DWORDfParity:為1的話激活奇偶校驗檢查DWORDParity:校驗方式,值0~4分別對應(yīng)無校驗、奇校驗、偶校驗、校驗置位、校驗清零DWORDByteSize:一個字節(jié)的數(shù)據(jù)位個數(shù),范圍是5~8DWORDStopBits:停止位個數(shù),0~2分別對應(yīng)1位、1.5位、2位停止位操作舉例:DCBComDCB;//串口設(shè)備控制塊GetCommState(hComm,&ComDCB);(4)SetCommState()用途:設(shè)置串口狀態(tài),包括常用的更改串口號、波特率

7、、奇偶校驗方式、數(shù)據(jù)位數(shù)等原型:BOOLSetCommState(HANDLEhFile,LPDCBlpDCB);參數(shù)說明:-hFile:串口句柄-lpDCB:設(shè)備控制塊(DeviceControlBlock)結(jié)構(gòu)地址。要更改的串口參數(shù)包含在此結(jié)構(gòu)中。操作舉例:DCBComDCB;GetCommState(hComm,&ComDCB);//取得當(dāng)前串口狀態(tài)ComDCB.BaudRate=9600;//更改為9600bps,該值即為你要修改后的波特率SetCommState(hComm,&ComDCB;//將更改后的參數(shù)寫入串口(5)WriteFile()用途:向串口寫數(shù)據(jù)原型

8、:BOOLWriteFile(HANDLEhFile,LPCVOIDlpBuffer,DWORDnNumberOfBytesToWrite,LPDWORDlpNumberOfBytesWritten,LPOVERLAPPEDlpOverlapped);參數(shù)說明:-hFile:串口句柄-lpBuffer:待寫入數(shù)據(jù)的首地址-nNumberOfBytesToWrite:待寫入數(shù)據(jù)的字節(jié)數(shù)長度-lpNumberOfBytesWritten:函數(shù)返回的實際寫入串口的數(shù)據(jù)個數(shù)的地址,利用此變量可判斷實際寫入的字節(jié)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。