串行I / O是Windows CE支持的最簡單的通訊方式。兩個設備之間創建一個直接的、一對一的鏈接。串行I / O能夠經過多種方式的硬件鏈接,可是,大多數基於Windows CE的設備使用串行電纜或PC卡設備,如調制解調器或紅外(IR)收發器。串行電纜之間的數據交換相似於文件的讀取或寫入。編程
Windows CE支持基於標準的基於Windows桌面的串行通信函數。這些函數可用於打開、關閉、並操縱串行端口、發送和接收數據,並管理鏈接。ide
雖然目前不少設備都沒有外置串口,由於有更快更穩定的接口代替了串口。可是基於Windows CE的設備仍然保留着串口,由於目前經常使用的基於Windows CE的設備都具體導航、電話等功能,而GPS、GSM/GPRS的模塊都是外置串口的終端設備。所以,串口仍會做爲Windows CE設備中不可缺乏的部分。函數
在Windows CE下的串口編程不一樣於MS-DOS下的編程。每一個Windows CE設備都擁有各自不一樣的物理內存映射表。即便可以查找到串口設備對應的基地址,也不能直接對寄存器進行編程。由於串行硬件與串口端口不能保證徹底兼容,程序對寄存器的操做並不必定可以成功或正確寫入到相應的串行硬件中。post
一個與串口進行交互的應用程序,涉及到打開串行設備驅動程序以及與其通訊。與大部分的現代操做系統同樣,Windows CE經過文件系統的一系列API來訪問設備驅動程序。串口通訊中經常使用的API既包括了設備基本通訊函數,如CreateFile, ReadFile, WriteFile, CloseHandle函數分別用於串口的創建、,數據傳輸以及關閉,也包括了設備控制函數,如GetCommState/SetCommState,GetCommTimeouts/SetCommTimeouts,GetCommMask/SetCommMask,以及WatiCommEvent函數分別用於串口狀態、參數以及事件條件等的查詢和設定。spa
開啓序列通訊端口經過調用CreateFile函數來打開。由於硬件供應商和設備驅動程序開發者能夠給端口指定任意的名字,應用程序應該列出可用的端口,並容許用戶指定須要打開的端口。若是指定的端口不存在,CreateFile函數返回ERROR_FILE_NOT_FOUND,並應通知用戶端口不可用。操作系統
CreateFile函數的功能在於建立、打開或截斷文件、通訊資源,磁盤設備或控制檯。它返回一個能夠用來訪問對象的句柄,也能夠打開並返回目錄的句柄。設計
CreateFile函數的原型以下:指針
HANDLE CreateFile(對象
LPCTSTR lpFileName, 接口
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDispostion ,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile);
參數lpFileName是一個指向空結束字符串的指針,這個字符串描述了須要建立或打開的對象的名稱(文件,控制檯,磁盤設備,通訊資源,或目錄)。若是參數lpFileName的值是文件路徑,那麼默認的字符串長度限制爲MAX_PATH;若是參數lpFileName指向了通訊資源的對象,那麼在名稱的末尾必須加上「:」,如「COM1:」。
參數dwDesiredAccess指定訪問對象的類型。應用程序能夠獲取讀訪問,寫訪問,讀寫訪問,或設備查詢的訪問