1、C#使用Windows API時必須先使用DllImport來Include Library,主要使用下列九個Windows API:
1 - 1、CreateFile (CloseHandle) 一 建立/開啟(關閉)一個檔案或I/O設備
1 - 2、CreateEvent 一 建立/開啟有名稱或沒有名稱的一個事件物件
1 - 3、ClearCommBreak (SetCommBreak) 一
恢愎(暫停)通訊設備的傳輸並設定傳輸線在非(是)中斷的狀態
1 - 4、GetCommState (SetCommState) 一 檢索(設定)目前通訊設備的控制設定
1 - 5、GetCommMask (SetCommMask) 一 檢索(設定)目前通訊設備的事件遮罩
1 - 6、GetDefaultCommConfig (SetDefaultCommConfig) 一
檢索(設定)預設目前通訊設備的組態設定
1 - 7、GetCommConfig (SetCommConfig) 一 檢索(設定)目前通訊設備的組態設定
1 - 8、GetCommModemState 一 檢索模式控制暫存器的值
1 - 9、GetCommTimeouts (SetCommTimeouts) 一檢索(設定)通訊設備讀/寫的等待時間
1 - 10、PurgeComm 一 丟棄讀/寫緩衝區的資料並終止等待中的讀/寫運作
1 - 11、SetupComm 一 初始化通訊設備
1 - 12、SetEvent 一 設定事件物件的訊號狀態
1 - 13、WaitCommEvent 一 設定並等待通訊設備的事件發件
2、在開始進行通訊前必須使用SetCommState和DCB結構來設定通訊的相關參數,主要設定的欄位如下:
2 - 1、DCBlength: 設定DCB結構的大小
2 - 2、BaudRate: 設定傳輸的速度
2 - 3、fParity: 設定是否開啟同位元檢查與回傳錯誤的報告
2 - 4、fOutxCtsFlow(fOutDsrFlow): 設定是否在輸出緩衝區中使用CTS(DSR)的訊號
2 - 6、fDtrControl: 設定是否使用DTR(data-terminal-ready)控制訊號方式
2 - 7、fRtsControl: 設定是否使用RTS(request-to-send)控制訊號方式
2 - 8、fInX(fOutX): 是否在接收(傳送)時使用XON/xOFF流量控制
2 - 9、Parity: 設定同位元檢查的方式
2 - 10、StopBits: 設定停止位元的數量
2 - 11、ByteSize: 設定在一個位元組中有多少個接收和傳送的位元
3、在除了上述參數設定外,在呼叫ReadFile(WriteFile)函式前還必須先使用COMMTIMEOUTS Structure
並透過SetCommTimeouts函式來設定等待的時間:
3 - 1、ReadIntervalTimeout: 設定讀取兩個位元組之間的等待時間,當超過時間時,則會直接回傳
現在已接收到的資料。
3 - 2、ReadTotalTimeoutMultiplier: 以接收位元組的倍數來設定整個等待讀取資料的時間
3 - 3、ReadTotalTimeoutConstant: 以固定的常數來增加由ReadTotalTimeoutMultiplier所計
算出來的等待時間
3 - 4、WriteTotalTimeoutMultiplier: 以接收位元組的倍數來設定整個輸出資料的執行時間
3 - 5、WriteTotalTimeoutConstant: 以固定的常數來增加由WriteTotalTimeoutMultiplier所計
算出來輸出資料的時間
PS. 1 - 當ReadTotalTimeoutMultiplier和ReadTotalTimeoutConstant皆為零時,
表示不設定等待接收的時間
2 - 當WriteTotalTimeoutMultiplier和WriteTotalTimeoutConstant皆為零時,
表示不設定輸出的執行時間
4、在讀/寫Serial Port的基本的流程如下:
4 - 1、Open函式開啟特定的Serial Port
4 - 2、初始化DCB結構並使用SetCommState函式設定溝通的相關參數
4 - 3、初始化COMMTIMEOUTS 結構並使用SetCommTimeout函式設定等待時間
4 - 4、使用CreateEvent函式建立Event Object和建立Thread並使用ReadFile來接收Serial Port的資料
4 - 5、使用WriteFile來傳送資料至Serial Port
Download : SerialPort.rar SerialPort.exe
Result :
1、 連接到SUMSUANG S3C44B0X1的開發板 一
2 - 在輸出欄中輸入help並按下Enter鍵