VC++下用MSComm控件实现串口通讯

2016-02-19 21:36 5 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享VC++下用MSComm控件实现串口通讯的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - 编程语言 】

首先,在对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project -- Add to Project -- Components and Control插入即可,再将该控件从工具箱中拉到对话框中。此时,你只需要关心控件提供的对 Windows 通讯驱动程序的 API 函数的接口。 !-- frame contents --!-- /frame contents -- 换句话说,只需要设置和监视MSComm控件的属性和事件。 打开所需串口后,需要考虑串口通信的时机。在接收或发送数据过程中,可能需要监视并响应一些事件和错误,所以事件驱动是处理串行端口交互作用的一种非常有效的方法。使用 OnComm 事件和 CommEvent 属性捕捉并检查通讯事件和错误的值。发生通讯事件或错误时,将触发 OnComm 事件,CommEvent 属性的值将被改变,应用程序检查 CommEvent 属性值并作出相应的反应 // 若是在SDI中使用该控件则要调用下两句,在对话框程序中该语句有MFC自己创建
  // 所以不用人为添加
  DWord style=WS_VISIBLE;
  m_MSComm.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM1);
  // 串口控件的初始化
  DWORD style=WS_VISIBLE;
  m_MSComm.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM1);
  if(m_MSComm.GetPortOpen()) //假如串口是打开的,则行关闭串口
  {
   m_MSComm.SetPortOpen(FALSE);
  }
  m_MSComm.SetCommPort(1); //选择COM1
  m_MSComm.SetInBufferSize(1024); //接收缓冲区
  m_MSComm.SetOutBufferSize(1024);//发送缓冲区
  m_MSComm.SetInputLen(0);//设置当前接收区数据长度为0,表示全部读取
  m_MSComm.SetInputMode(1);//以二进制方式读写数据
  m_MSComm.SetRThreshold(1);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件
  m_MSComm.SetSettings("9600,n,8,1");//波特率9600无检验位,8个数据位,1个停止位
  if(!m_MSComm.GetPortOpen())//假如串口没有打开则打开
   m_MSComm.SetPortOpen(TRUE);//打开串口
  else
   m_MSComm.SetOutBufferCount(0);
  // 控件事件的响应声明
  // *.h
  //{{AFX_MSG(CGolfView)
  afx_msg BOOL OnComm();
  DECLARE_EVENTSINK_MAP()
  /

来源:http://www.tulaoshi.com/n/20160219/1626630.html

延伸阅读
用vc++写console程序时,整天对着黑纸白字的屏幕,感觉很郁闷吧?很多人想用CONIO.H/GRAPHICS.H中的一些函数来实现,却发现VC++根本没有这些头文件。当然了CONIO.H/GRAPHICS.H是BORLAND TC/BC专有的头文件,所以vc++中根本没有这些文件。把这两个头文件COPY过来,然后用??答案当然是否定的。其实VC++中也有相关的函数来实现console彩色文...
    最近天气太热,外加无聊,出于练习的目的,想到了写个盗QQ的软件,说“盗”,未免是太难听了吧,于是我给它起名为“UiQQ道”.下面就是本软件的界面部分: (图1.软件界面部分)     一般的盗密码的软件的软件都是通过监视键盘来获得密码,这样操作比较方便,但是这样也存在一定问题,密码有的时候不是...
*假设调试机IP 192.168.0.182   远程机IP 192.168.0.161 *远程机为调试机分配权限,使调试机可以使用远程桌面登陆到远程机器上(这样调试起来方便)。 *调试机上安装visual studio .net 2003 共享调试机上的Visual Studio上的远程调试目录(以我的机器为例) C:Program FilesMicrosoft Visual Studio .NET 2003Common7PackagesDe...
引言 内部进程间通讯和数据交换有消息、共享内存、匿名(命名)管道、邮槽、Windows套接字等多种技术。其中利用消息机制实现IPC虽然同其他方法相比有交换的数据量小、携带的信息少等缺点,但由于其实现方便、应用灵活而广泛应用于无须大量、频繁数据交换的内部进程通讯系统之中,尤其是对于在上层主控软件与底层工作软件之间的命令与响应...
在VC++实现数据加密 作者:惠州市东晓电子有限公司 龚辉斌 下载本文示例源代码 为了保证数据的安全性与完整性,常常要对数据进行加密,在数据传输过程进行数据加密可以防止中途非法截获。我们通常称原始数据叫做源文,用约定的加密算法进行加密处理。加密算法的输入是源文与加密键,而输出的则是密文...