milkyway的窝

最初想法的诞生地

 

串行通讯



串行通讯实际上将被所有的Windows CE设备所支持,在硬件水平上,通过电缆和红外传送器进行串行通讯是很普通的。调制解调器也支持串行通讯。

1.PC和Windows CE的通信系统

Win32的通信系统 Win32提供给用户一个模块化的32位的保护模式的通信系统。在Win32中,各种通信资源的函数做了很大的改进和标准化,使得它们的操作就如同文件的操作一样。

在串口读写操作中,Win32引入了超时概念。超时直接影响读和写的操作行为。当超过预先设定的超时间隔时,ReadFile、WriteFile操作仍未结束,那么将无条件结束读写操作,而不论是否已读出或写入指定数量的字符。

Windows CE的通信系统 Windows CE将驱动程序分为两种:本地设备驱动程序和流设备驱动程序。本地设备驱动程序,也称为“内置驱动程序”,这些设备驱动程序是一些硬件所必需的,是由原始设备制造商创建的,用以驱动如键盘、触摸屏、音频设备等,往往在设备售出后就不会再更换。另一方面,流接口设备驱动程序(指可安装的启动程序)可以由第三方生产商提供,以支持添加到系统中的设备。Windows CE下的设备驱动程序在与应用程序相同的保护级上工作。当系统启动时,大多数驱动程序是由设备管理进程(DEVICE.EXE)加载的,所有的这些驱动程序将共享同一个进程地址空间。

本地设备驱动程序一般都被紧紧地限制在Windows CE的操作系统中,往往在设备售出后就不会再更换。因为Windows CE没有像ISA或PCI那样的用于附加插卡的总线,附加的硬件通常是通过PCMCIA或“小型快闪槽”安装的,例如串口2是通过PCMCIA卡实现的。观察注册表中的HKEY_LOCAL_MACHINE下的\Drivers\Active键中的内容,可以了解在Windows CE中加载了什么驱动程序。 

通信过程 包括(1)打开通信资源。在进程使用串口之前,首先应使用CreateFile函数打开通信资源,返回一个标识该资源的句柄。在CreateFile函数打开串口通信资源时,系统将根据上次打开资源时的数值初始化和配置资源;(2)读写串口资源。通过ReadFile和WriteFile函数来读写串口。读和写的超时时间由SetCommTimeouts函数设置;(3)关闭通信资源。在使用通信资源结束后,应调用CloseHandle函数来关闭通信句柄,释放资源。

基本的串行通信编程 串行设备被视为用于打开、关闭、读和写串口的常规、可安装的流设备。Win32 API提供了一组通信函数,Windows CE支持了其中的大多数通信函数。

打开和关闭串行端口:在所有的流设备都可以使用CreateFile来打开串行端口设备。一般的调用方法如下:

hSer=CreateFile(TEXT(“COM1:”),

GENERIC_READ|GENERIC_WRITE,

0,

NULL,

OPEN_EXISTING,

0,

NULL);

 

由于Windows CE不支持设备的重叠I/O,因此不能传递FILE_FLAG_OVERLAPPED标志。当不成功时,返回句柄INVALILD_HANDLE_VALUE,反之返回打开的串行端口句柄。

调用CloseHandle可以关闭一个串行端口:

CloseHandle(hSer);

读写串行端口:可以使用ReadFile和WriteFile来读写串行端口。从串口读出数据只需如下调用:

int rc;

DWORD cBytes;

BYTE ch;

rc=ReadFile(hSer,&ch,1,&cBytes,NULL);

调用成功,则变量ch将读入一个字节,cBytes将被设置为读取的字节的数量。

从串口写入数据只需如下调用:

int rc;

DWORD cBytes;

BYTE ch;

ch=TEXT(‘A’);

rc=WriteFile(hSer , &ch , 1 , &cBytes , NULL );

上面的代码将字母A写入已经打开的端口,成功的话,ReadFile和WriteFile都将返回TRUE。


http://palmheart.net/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=154

每一个串行设备都匹配有一个COM口,例如“COM1”。Windows CE为打开串口和管理接收设备上的连接提供了一个API。一旦连接成功,将用相同的函数进行数据传送,这些函数用以读一个文件或者写一个文件。数据只是简单的从一个设备传送到另一个设备。不支持同步和异步I/O。

posted on 2007-01-04 15:09 milkyway 阅读(480) 评论(0)  编辑 收藏 引用 所属分类: wince(别人的文章技巧总结)


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

公告

随笔皆原创,文章乃转载. 欢迎留言!

常用链接

留言簿(37)

随笔分类(104)

随笔档案(101)

文章分类(51)

文章档案(53)

wince牛人

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜