2008年6月24日 星期二

open com port

Handle hcom = CreateFile(
comname, //名稱 like COM1 or COM2
GENERIC_READ | GENERIC_WRITE, //設定讀寫的權力
FILE_SHARE_READ| FILE_SHARE_WRITE,
0, // [in] Ignored; set to NULL.
OPEN_EXISTING, //設定檔案的狀態來決定要做什麼 此參數指的是 檔案不存在 function就會fail
0,
0 //[in] Ignored;
);

create完之後
可以檢查這個Handle是否有等於 INVALID_HANDLE_VALUE
如果等於 就是開啟失敗

接下來透過
GetCommState來得到目前這個device的 communication status (or called control settings)
以下是定義
BOOL GetCommState( HANDLE hFile, LPDCB lpDCB );

DCB
This structure defines the control setting for a serial communications device.

裡面有幾個參數

uart port 的 cts and rts 的意義

有關係
fRtsControl
Specifies the RTS (request-to-send) flow control.
有三種狀態讓你設定
RTS_CONTROL_DISABLE
RTS_CONTROL_ENABLE
RTS_CONTROL_HANDSHAKE
RTS_CONTROL_TOGGLE

如果不做 flow control
設定成 RTS_CONTROL_DISABLE 應該就可以

在用SetCommState設定
BOOL SetCommState(
HANDLE hFile,
LPDCB lpDCB
);
當然通常會先Getcommstate
then SetCommState

透過Facebook分享

沒有留言: