close

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的開發板 一

           serialport-1.jpg

     2 -  在輸出欄中輸入help並按下Enter鍵

           serialport-2.jpg

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 yunjuihuang 的頭像
    yunjuihuang

    瑞の資訊備忘錄

    yunjuihuang 發表在 痞客邦 留言(1) 人氣()