计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

智能家居系统的设计与实现网络毕业论文(4)

2013-09-04 01:05
导读:4.3串口功能设计 4.3.1 串口通信协议 串口通信协议采用CCESeries类实现,通过对此类的成员函数的调用,完成对串口的初始化、读写操作等,在不用串口的情

  4.3串口功能设计

  4.3.1 串口通信协议

  串口通信协议采用CCESeries类实现,通过对此类的成员函数的调用,完成对串口的初始化、读写操作等,在不用串口的情况下,还可以关闭串口。

  4.3.2 软件的实现

  在Visual Studio的解决方案视图里添加类CCESeries,如图4-7所示。CCESeries类的成员函数如表4-2所示。

图4-7 在VS2005中建立CCESeries类

表4-2 串口操作类CCESeries的成员函数

表4-3 串口操作类CCESeries的成员变量

  4.2.2.1 打开串口与配置串口

  在Windows CE中,驱动程序分为本地设备驱动和流设备驱动两种[6]。本地设备如键盘、触摸屏等,一般在设备生产后是不会再更换的,相应的驱动这些设备的驱动程序也是必需的。而流接口设备驱动程序可以由第三方提供,支持另外添加到系统中的设备。而串口就属于流接口设备之一。

  流设备驱动在系统中是以三位字符串后跟一位数字表示的,对于串口而言,这三位字符是“COM”(不包括引号)。当引用一个流接口驱动程序时,除了三位字符后跟一位数字以外,还要紧跟一个冒号“:”(英文半角冒号),冒号是必需的,是为了区别桌面Windows的设备驱动程序的命名规则。

  该函数的流程图如图4-8所示:

图4-8 OpenPort函数流程图

   (1)串口的打开所有的流驱动程序都将采用CreateFile函数打开串口设备。在Windows CE下,系统不支持设备的重叠I/O,所以不能在参数dwFlagsAndAttributes中传递FILE_FLAG_OVERLAPPED标志,返回的句柄要么是已打开的串口端口的句柄,或者是INVAILID_HANDLE_VALUE。CreateFile与大多数Windows函数不一样,打开失败时,不返回0。

  CreateFile函数的原型如下:

HANDLE CreateFile(

LPCTSTR lpFileName,                                  // 对象路径名

DWORD dwDesiredAccess,                            //控制模式

DWORD dwShareMode,                             // 共享模式

LPSECURITY_ATTRIBUTES lpSecurityAttributes,   //安全属性(也即销毁方式)

DWORD dwCreationDisposition,                 // 创建的方式

DWORD dwFlagsAndAttributes,                  // 对象属性

HANDLE hTemplateFile                            // 一个文件模板句柄

);

  在CCESeries类中, HANDLE类型全局变量m_hComm存储CreateFile函数打开串口成功时的返回值,凭借此句柄可以控制打开的串口对象;以读写的方式打开串口。

  (2)串口的设置

  打开串口后,还必须对端口配置好正确的波特率、字符长度、停止位等等。在OpenPort函数中,使用两个函数GetCommState和SetCommState来配置串口。

  函数原型如下:

BOOL SetCommState(HANDLE hRle, LPDCB lpDCB);

BOOL GetCommState(HANDLE hFile, LPDCB lpDCB);

  这两个函数都包含了同样的参数,即已打开的串口的句柄和指向DCB结构的指针。DCB结构的设置如表4-4所示。

表4-4  OpenPort函数中的串口DCB配置

续表4-4  OpenPort函数中的串口DCB配置

上一篇:SNS网络中的若干问题网络毕业论文 下一篇:没有了