Beginning to 编程

VC++ 方面编程文章

 

C++中实现串口操作类

工程下载:http://www.cppblog.com/Files/richardzeng/C++中实现串口操作类%20SerialPortLib.rar

最近封装了一个串口类,与大家分享,该类的主要特点是:能实现数据的异步接收;无须MFC的支持;只能在VS2003编译通过,但只要做少量修改就可以在VC6.0中使用.使用起来非常简单,主要代码如下:

 1 #include "stdafx.h"
 2 #include "comm_exception.h"
 3 #include "SerialPort.h"
 4 #include "serialportobservertest.h"
 5 
 6 using namespace C2217::StdLib;
 7 using namespace
 IBMS;
 8 

 9 int _tmain(int argc, _TCHAR* argv[])
10 
{
11     try

12     {    
13         //声明一个串口观察者

14         CSerialPortObserverTest portObserver;
15         //声明串口1

16         CSerialPort port(1);
17         //注册串口的观察者

18         port.AtachPortObserver(&portObserver);
19         //打开串口

20         port.Open();
21         byte data[100= {0
};
22 

23         port.Send(data,sizeof(data));
24 
    }
25     catch(comm_exception &
e)
26 
    {
27 
        SET_CATCH_POS(e);
28         std::cout <<
 e;
29 
    }
30 

31     return 0;
32 
}
33 

   串口数据的接收在

void CSerialPortObserverTest::OnSerialPortReceive(CSerialPort *pSerialPort, byte *pData, size_t nDataLen)
{
 cout 
<< pSerialPort->GetName().c_str() << "Received Data: "<<
endl;
 
 
for(size_t i=0; i< nDataLen ;++
i )
 {
  cout 
<< pData[i] << " "
 ;
 }

 cout 
<<
endl;
}

   完成,你也可以不使用观察者,直接重写void CSerialPort::OnReceiveData(byte *pData, size_t nDataLen)可以获得更好的执行效率。去掉观察者对象list.

   有什么问题邮件联系:dyj057@gmail.com



# re: C++中实现串口操作类 2005-12-22 18:34 小明
我看你的程序使用了一个叫IbmsSerialPort.dll的dll来完成通讯

而这个IbmsSerialPort.dll首先使用CreateFile,然后使用GetCommState等等一系列communications resource function来完成端口通讯

ok,学到了一些东西

  回复 

# re: C++中实现串口操作类 2006-03-01 10:44 msn:a.zlp@163.com
CreateFile对串口操作是独占的,其他的应用程序就不能打开,怎么实现观察者的角色呢?想请教楼主!msn:a.zlp@163.com  回复
  

# re: C++中实现串口操作类 2006-03-01 12:00 天下无双
这个简单,当你发送数据的时候,也发送一份到观察者.接收到数据的时候,也转一份到观察者。  回复 
   
  

posted on 2006-03-10 11:15 Beginning to 编程 阅读(1344) 评论(1)  编辑 收藏 引用 所属分类: 关键代码

评论

# re: C++中实现串口操作类 2006-03-20 17:30 sdf

wo lai ge   回复  更多评论   


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


导航

统计

常用链接

留言簿(4)

随笔分类

随笔档案

文章档案

相册

BlogDev

搜索

最新评论

阅读排行榜

评论排行榜