- 相關推薦
Windows CE下串行通信的實現
摘要:Windows CE是微軟公司推出的一種嵌入式的操作系統、用于系統資源有限的小型設備。它采用模塊化的結構,支持多種外部接口,包括最常用的RS232串行接口。本文就Windows CE系統串行接口的編程進行討論,并給出與GPS設備的接口程序。1 Windows CE簡介
Windows CE是一種小型的、基于ROM的、具有Win32子集API的操作系統。它的優勢在于小尺寸、Win32 API子集和對多平臺的支持能力。在Windows CE下編程需要注意的是,Windows CE設備的資源很少,存儲器、顯示器都很小,接口也比較少,而且根據實際情況變化很大。另外,Windows CE只支持Unicode,這在編程中要格外注意。在Windows CE中,除了一些基本的Windows通用控件以外,還有一些專門設計的控件,比如CommandBar。Windows CE體積雖小,但是它的功能并不少,內存管理、文件操作、多線程、網絡功能等等它都支持,可以說是麻雀雖小,五臟俱全。
2 Windows CE下的串行通信
串行端口在Windows CE下屬于流接口設備,它是串行設備接口的常規I/O驅動程序調用和與通信相關的具體函數的結合。串行設備被視為用于打開、關閉、讀寫串行端口的常規、可安裝的流設備。Windows CE的通信函數和其它大多數Windows的通信函數相同。特別要注意的是,Windows CE不支持直接對串行端口的寄存器進行編程。常用的串行端口函數介紹如下:
(1)打開和關閉串行端口
CreateFile函數用于打開串行口。
hPort=CreateFile(TEXT(“COM1:”),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL)。注意COM1后要有一個冒號。最后一個參數dwFlagsAndAttributes必須為0,因為Windows CE只支持非重疊I/O。第3個參數dwShareMode也必須為0,通信端口不能像文件一樣被共享。這個函數的返回值是已打開的串行端口的句柄或者是INVALID_HANDLE_VALUE。
關閉串行口可以調用CloseHandle(hPort)。
(2)配置串行端口
配置串行口主要是用DCB結構配置端口設置,包括波特率、停止位、數據位長度、校驗位、流量控制等等,還有配置超時值。
首先打開串行端口,用GetCommState函數獲得當前打開串口配置,然后根據需要修改DCB成員,最后用SetCommState函數設置新的串口配置。
DCB PortDCB; //創建DCB變量
Port.DCB.DCBlength=sizeof(DCB);
GetCommState(hPort,
【Windows CE下串行通信的實現】相關文章:
在Windows2000下用多線程實現1394串行總線通信03-20
在VC 中用ActiveX控件實現與單片機的串行通信03-19
用Borland C 3.1實現外設與Windows應用程序實時通信03-21
TMS320C54XX系列DSP與PC機間串行通信的實現03-18
異步串行通信接口的IP核設計03-18
在 DOS 下使用Windows *.WAV 文件03-03
Windows環境下對象的鏈接與嵌入03-16