VC学习:Windows CE下的串口通讯类

VC学习:Windows CE下的串口通讯类

ID:37898286

大小:45.00 KB

页数:12页

时间:2019-06-02

VC学习:Windows CE下的串口通讯类_第1页
VC学习:Windows CE下的串口通讯类_第2页
VC学习:Windows CE下的串口通讯类_第3页
VC学习:Windows CE下的串口通讯类_第4页
VC学习:Windows CE下的串口通讯类_第5页
资源描述:

《VC学习:Windows CE下的串口通讯类》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VC学习:WindowsCE下的串口通讯类文章来源:作者:zhenxizhou/CSDN  串行通讯是目前计算机、通信和控制领域最基本的通信方式。在CSDN的“嵌入式开发/WINCE”社区中,经常有人提问该到哪找串口通讯类,其实这个问题我自己也问过。:)而一般的回答是给你提供一个PocketPC2002的SDK例子程序。但到底SDK的程序和MFC的结构有很大的不同,对于想用MFC编写通信程序的人来说也不是很便利。    另一方面,由于WindowsCE是一个基于Unicode的操作系统,并且WindowsCE不支持Windows下常用的串行通信重叠I/O方式(OVERLAPPED

2、),因此编写WindowsCE下的串口通讯类有一些与桌面Windows不同的地方。    以下是我从SDK程序改写而来的MFC类,希望能和致力于WINCE开发的朋友多多交流,由于本人才疏学浅,程序中有许多不完善的地方,请大家指正。我的程序是基于“主动发送请求,被动接收响应”的假设,因此我只设置了一个接收数据的线程。如果有朋友能提供有独立发送数据和接收数据线程的类,我将十分感激。我的E_mail:zhenxizhou@elong.com。    感谢“嵌入式开发/WINCE”社区为我提供SDK例子的朋友,感谢CSDN上所有热心的朋友,祝愿中国的软硬件水平能早日挤身世界一流。    

3、头文件Serial.h    //Serial.h:interfacefortheCSerialclass.    //    /////////////////////////////    #if!defined(AFX_SERIAL_H__59575586_AAA9_4FEF_B2A7_E089553698EF__INCLUDED_)    #defineAFX_SERIAL_H__59575586_AAA9_4FEF_B2A7_E089553698EF__INCLUDED_    #if_MSC_VER>1000    #pragmaonce    #endif//_MS

4、C_VER>1000    DWORDWINAPIReadPortThread(LPVOIDlpvoid);//读数据线程    classCSerial    {    public:    BOOLInitCommTimeouts();//设置超时参数    BOOLInitDCB();//配置串口  BOOLm_bConnected;    BOOLClosePort(HANDLEhCommPort);//关闭串口    DWORDWritePort(TCHAR*buf,DWORDdwBytesToWrite);//写数据    BOOLOpenPort(LPTSTRlps

5、zPortName);//打开串口    CSerial();    HANDLEhReadThread;    virtual~CSerial();    };    #endif//!defined(AFX_SERIAL_H__59575586_AAA9_4FEF_B2A7_E089553698EF__INCLUDED_)    源文件:Serial.cpp    //Serial.cpp:implementationoftheCSerialclass.    //    /////////////////    #include"stdafx.h"    #include"

6、Serial.h"    #ifdef_DEBUG    #undefTHIS_FILE    staticcharTHIS_FILE[]=__FILE__;    #definenewDEBUG_NEW    #endif    HANDLEhPort;    CStringstrInChar;    //////////////////////////////////////////    //Construction/Destruction    /////////////////////////////////////////  CSerial::CSerial()   

7、 {    }    CSerial::~CSerial()    {    if(hPort!=INVALID_HANDLE_VALUE)    ClosePort(hPort);    }    BOOLCSerial::OpenPort(LPTSTRlpszPortName)    {    DWORDdwError,    dwThreadID;  if(hPort)    {    returnFALSE;    }    //打开串口    hPort=CreateF

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。