Windows Embedded CE 7串口通讯应用程序实例(上)

本章将介绍Windows Embedded CE 7.0的串口通讯。一些基于Windows CE的设备能够与其余计算机、打印机、调制解调器,或全球定位系统(GPS)卫星通讯由串行链接方式。

串行I / OWindows CE支持的最简单的通讯方式。两个设备之间创建一个直接的、一对一的链接。串行I / O能够经过多种方式的硬件链接,可是,大多数基于Windows CE的设备使用串行电缆或PC卡设备,如调制解调器或红外(IR)收发器。串行电缆之间的数据交换相似于文件的读取或写入。编程

Windows CE支持基于标准的基于Windows桌面的串行通信函数。这些函数可用于打开、关闭、并操纵串行端口、发送和接收数据,并管理链接。ide

虽然目前不少设备都没有外置串口,由于有更快更稳定的接口代替了串口。可是基于Windows CE的设备仍然保留着串口,由于目前经常使用的基于Windows CE的设备都具体导航、电话等功能,而GPSGSM/GPRS的模块都是外置串口的终端设备。所以,串口仍会做为Windows CE设备中不可缺乏的部分。函数

9.1 设计说明

Windows CE下的串口编程不一样于MS-DOS下的编程。每一个Windows CE设备都拥有各自不一样的物理内存映射表。即便可以查找到串口设备对应的基地址,也不能直接对寄存器进行编程。由于串行硬件与串口端口不能保证彻底兼容,程序对寄存器的操做并不必定可以成功或正确写入到相应的串行硬件中。post

一个与串口进行交互的应用程序,涉及到打开串行设备驱动程序以及与其通讯。与大部分的现代操做系统同样,Windows CE经过文件系统的一系列API来访问设备驱动程序。串口通讯中经常使用的API既包括了设备基本通讯函数,如CreateFile, ReadFile, WriteFile, CloseHandle函数分别用于串口的创建、,数据传输以及关闭,也包括了设备控制函数,如GetCommState/SetCommStateGetCommTimeouts/SetCommTimeoutsGetCommMask/SetCommMask,以及WatiCommEvent函数分别用于串口状态、参数以及事件条件等的查询和设定。spa

9.2 开启序列通讯端口

开启序列通讯端口经过调用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指定访问对象的类型。应用程序能够获取读访问,写访问,读写访问,或设备查询的访问

相关文章
相关标签/搜索