在32位的windows系統中,串口和其他通信設備是作為文件處理的。對串口的操作和對文件的操作是完全一樣的。通信以調用CreateFile()開始。 函數原型如下: 如果用CreateFile()函數打開COM1,代碼如下: ...
在32位的windows系統中,串口和其他通信設備是作為文件處理的。對串口的操作和對文件的操作是完全一樣的。通信以調用CreateFile()開始。
函數原型如下:
HANDLE CreateFile ( LPCTSTR lpFileName, //指向文件名的指針:指定要打開的串口邏輯名,用字元串表示,如:COM1和COM2
DWORD dwDesiredAccess, //訪問模式(寫/讀):在串口中一般為讀寫,故一般連起來使用,既既可以讀也可以寫:參數為GENERIC_READ|GENERIC_WRITE
DWORD dwShareMode, //共用模式:埠的共用屬性。對於串口,他為0,這是與文件與通信設備最大的區別。一個程式打開了一個串口,另外一個程式在用CreateFile創建的時候就會出錯。
LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全屬性的指針
DWORD dwCreationDisposition, //如何創建:在串口中必須設置為OPEN_EXISTING。表示不能創建新埠只能打開已有的埠。
DWORD dwFlagsAndAttributes, //文件屬性 HANDLE hTemplateFile //用於複製文件句柄
);
如果用CreateFile()函數打開COM1,代碼如下:
HANDLE hCom; hCom=CreateFile ( "COM1",// 文件名,既是COM1,為邏輯名 GENERIC_READ|GENERIC_WRITE, //允許讀和寫 0,//獨占方式 NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, //重疊方式 NULL );