基于嵌入式ROMWindows CE下的串行通信
2013-06-06 10:38
302 查看
在学习编程的过程中,我觉得不止要获得课本的知识,更多的是解决问题的方法,面对新问题该怎么解决,这样我们才能走在最前方,我是达内的学员,感谢你对本博客的支持(转载于:http://www.tarenagz.com);
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,&PortDCB); //获取当前串口配置修改DCB成员
PortDCB.BaudRate=9600; //波特率
PortDCB.Parity=NOPARITY; //校验位
PortDCB.StopBits=ONESTOPBIT; //停止位
PortDCB.ByteSize=8;
. SetCommState(hPort,&PortDCB); //设置新的串口配置
知识就是力量,别人学用知识来赚钱的成本低,在达内学习到编程是铸造梦想的地方,如果你喜欢编程,这里,有我们共同语言,共同的故事,共同的梦想!
(责任编辑:广州达内培训)
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,&PortDCB); //获取当前串口配置修改DCB成员
PortDCB.BaudRate=9600; //波特率
PortDCB.Parity=NOPARITY; //校验位
PortDCB.StopBits=ONESTOPBIT; //停止位
PortDCB.ByteSize=8;
. SetCommState(hPort,&PortDCB); //设置新的串口配置
知识就是力量,别人学用知识来赚钱的成本低,在达内学习到编程是铸造梦想的地方,如果你喜欢编程,这里,有我们共同语言,共同的故事,共同的梦想!
(责任编辑:广州达内培训)
相关文章推荐
- Windows CE下串行通信的实现
- 基于STC15F2K08S2单片机和JDY-10蓝牙模块的串行通信
- 基于VC的串行通信技术应用实例
- 【微机实验系列】基于微机的串行通信口扩展
- 基于ARM的嵌入式的多功能串口通信
- 基于Windows CE的嵌入式系统开发流程
- 基于VxWorks和MPC860T平台的嵌入式串口通信服务器的解决方案
- 基于VxWorks的嵌入式系统复合通信模式
- 基于嵌入式操作系统VxWorks的多任务并发程序设计(4)――任务间通信A
- 基于PXA270嵌入式系统的Windows CE引导程序设计
- 基于嵌入式操作系统VxWorks的多任务并发程序设计(4)――任务间通信B
- 数据终端设备与无线通信模块之间串行通信链路复用协议(TS27.010)在嵌入式系统上的开发【转】
- 基于Windows CE的通信技术
- 基于Windows CE的嵌入式电子邮件系统设计
- 基于Windows CE的嵌入式Java解决方案
- Windows CE下串行通信的实现
- 基于VC的串行通信技术应用
- 基于Windows CE的嵌入式Java解决方案
- 基于嵌入式操作系统VxWorks的多任务并发程序设计(4)――任务间通信A
- 基于VC的串行通信技术应用