未加星标

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

字体大小 | |
[系统(windows) 所属分类 系统(windows) | 发布者 店小二03 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏
本章将介绍 windowsEmbeddedC E7.0 的串口通信。一些基于 WindowsCE 的设备可以与其他计算机、打印机、调制解调器,或全球定位系统( GPS )卫星通信由串行连接方式。

串行 I/O 是 WindowsCE 支持的最简单的通信方式。两个设备之间建立一个直接的、一对一的连接。串行 I/O 可以通过多种方式的硬件连接,但是,大多数基于 WindowsCE 的设备使用串行电缆或 PC 卡设备,如调制解调器或红外( IR )收发器。串行电缆之间的数据交换类似于文件的读取或写入。

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

虽然目前很多设备都没有外置串口,因为有更快更稳定的接口代替了串口。但是基于 WindowsCE 的设备仍然保留着串口,因为目前常用的基于 WindowsCE 的设备都具体导航、电话等功能,而 GPS 、 GSM/GPRS 的模块都是外置串口的终端设备。因此,串口仍会作为 WindowsCE 设备中不可缺少的部分。

9.1设计说明

在 WindowsCE 下的串口编程不同于 MS-DOS 下的编程。每个 WindowsCE 设备都拥有各自不同的物理内存映射表。即使能够查找到串口设备对应的基地址,也不能直接对寄存器进行编程。因为串行硬件与串口端口不能保证完全兼容,程序对寄存器的操作并不一定能够成功或正确写入到相应的串行硬件中。

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

9.2开启序列通信端口

开启序列通信端口通过调用 CreateFile 函数来打开。因为硬件供应商和设备驱动程序开发者可以给端口指定任意的名字,应用程序应该列出可用的端口,并允许用户指定需要打开的端口。如果指定的端口不存在, CreateFile 函数返回 ERROR_FILE_NOT_FOUND ,并应通知用户端口不可用。

CreateFile 函数的功能在于创建、打开或截断文件、通信资源,磁盘设备或控制台。它返回一个可以用来访问对象的句柄,也可以打开并返回目录的句柄。

CreateFile 函数的原型如下:

HANDLECreateFile(

LPCTSTRlpFileName,

DWORDdwDesiredAccess,

DWORDdwShareMode,

LPSECURITY_ATTRIBUTESlpSecurityAttributes,

DWORDdwCreationDispostion,

DWORDdwFlagsAndAttributes,

HANDLEhTemplateFile);

参数lpFileName是一个指向空结束字符串的指针,这个字符串描述了需要创建或打开的对象的名称(文件,控制台,磁盘设备,通信资源,或目录)。如果参数lpFileName 的值是文件路径,那么默认的字符串长度限制为 MAX_PATH ;如果参数 lpFileName 指向了通信资源的对象,那么在名称的末尾必须加上 “ : ” ,如 “COM1:” 。

参数dwDesiredAccess指定访问对象的类型。应用程序可以获取读访问,写访问,读写访问,或设备查询的访问 。这个参数可以是下列值的任意组合:如表9-1所示

描述

0

允许设备对象被查询访问。应用程序可以不用访问设备而能够查询到设备的属性

GENERIC_READ

允许对象被读取访问。可以从文件中读取数据,也可以移动文件指针。结合属性 GENERIC_WRITE 允许读写访问

GENERIC_WRITE

允许对象被写入访问。可以向文件中写入数据,也可以移动文件指针。结合属性 GENERIC_ READ允许读写访问

表 9-1 对象类型说明

参数dwShareMode指定对象被共享的方式。如果 dwShareMode 是 0 ,对象不能共享。第一次之后打开对象的操作将失败,直到句柄被关闭。这个参数 可以是下列值的任意组合:如表9-2所示

描述

FILE_SHARE_READ

如果请求是读访问,以后每次打开对象的操作会成功。

FILE_SHARE_WRITE

如果请求是写访问,以后每次打开对象的操作会成功。

表 9-2 对象返回值说明

参数lpSecurityAttributes 被忽略,值为 NULL 。

参数dwCreationDispostion指定当文件存在以及不存在时分别采取的动作此参数必须是以下值之一:如表 9-3 所示。

描述

CREATE_NEW

创建一个新文件。如果指定的文件已经存在,该函数将失败。

CREATE_ALWAYS

本文系统(windows)相关术语:三级网络技术 计算机三级网络技术 网络技术基础 计算机网络技术

分页:12
转载请注明
本文标题:Windows Embedded CE 7串口通信应用程序实例(上)
本站链接:http://www.codesec.net/view/481440.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(windows) | 评论(0) | 阅读(37)