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

板石牛板筋

板石牛板筋

2016-02-19 21:36

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享VC++下用MSComm控件实现串口通讯的教程,热爱PS的朋友们快点看过来吧!
首先,在对话框中创建通信控件,若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()
  /
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
VC++下用MSComm控件实现串口通讯

VC++ 的串口通讯

编程语言 网络编程
VC++ 的串口通讯

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VC++中实现滑动控件

编程语言 网络编程
VC++中实现滑动控件

VC++中轻松实现滑动控件

C语言教程 C语言函数
VC++中轻松实现滑动控件

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

VC++下实现匿名管道

编程语言 网络编程
VC++下实现匿名管道

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

编程语言 网络编程
VC学习:Windows CE下的串口通讯类

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

在Word中画横线小技巧

在Word中画横线小技巧

用好HTML表单的文本框

用好HTML表单的文本框
下拉加载更多内容 ↓