1:如果添加MSComm控件?

见:http://blog.csdn.net/flydream0/article/details/8002012

2:为对话框添加MSComm控件成员变量

右击MSComm控件,然后选择Add Variable...

3:为对话框添加OnComm事件

右击MSComm控件,然后选择Add Event Handle..

4:打开/关闭串口.

void Ctbox_debug_viewDlg::OnBnClickedBtOpen()
{// TODO: Add your control notification handler code hereif(m_mscomm.get_PortOpen()){m_mscomm.put_PortOpen(FALSE);GetDlgItem(IDC_BT_OPEN)->SetWindowText(_T("打开"));ShowInfo(_T("关闭串口成功!"));m_OpenStatus =false;return;}UpdateData(TRUE);m_OpenStatus =true;//当前端口号m_mscomm.put_CommPort(m_Port+1);//端口号m_mscomm.put_InBufferSize(1024);//接收缓冲区 m_mscomm.put_OutBufferSize(1024);//发送缓冲区 m_mscomm.put_InputLen(0);//设置当前接收区数据长度为0,表示全部读取   m_mscomm.put_InputMode(1);//以二进制方式读写数据   m_mscomm.put_RThreshold(1);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件   //波特率DWORD baudrate;switch(m_CombolBaudrate.GetCurSel()){case 0:baudrate =115200;break;case 1:baudrate =9600;break;default:ASSERT(FALSE);break;}CString setting;setting.Format(_T("%d,n,8,1"),baudrate);m_mscomm.put_Settings(setting/*_T("115200,n,8,1")*/);//波特率,无校验,8个数据位,1个停止1位m_mscomm.put_PortOpen(TRUE);//打开串口  GetDlgItem(IDC_BT_OPEN)->SetWindowText(_T("关闭"));ShowInfo(_T("打开串口成功!"));}

5:接收串口数据

void Ctbox_debug_viewDlg::OnCommMscomm1()
{// TODO: Add your message handler code hereshort curEvent =m_mscomm.get_CommEvent();switch(curEvent){case CMscomm1::comEvReceive:EvReceiveHandle();break;}}
void Ctbox_debug_viewDlg::EvReceiveHandle(void)
{static unsigned int cnt=0;  VARIANT variant_inp;  COleSafeArray safearray_inp;  long len,k;  /*unsigned intdata[1024]={0};*/  BYTE rxdata[1024];//设置BYTE数组CString strtemp; cnt++;  variant_inp= m_mscomm.get_Input();//读取缓冲区   safearray_inp= variant_inp;//变量转换   len= safearray_inp.GetOneDimSize();//得到有效的数据长度   for (k=0;k<len;k++)  {  safearray_inp.GetElement(&k,rxdata+k);  }  /*char c_char; */ for (k=0;k<len;k++)  {  strtemp.Format(_T("%c"),*(rxdata+k));m_RecveString +=strtemp; if(*(rxdata+k) =='\n'){ShowInfoByFilter(m_RecveString);m_RecveString ="";}}
}

6:发送串口数据

void Ctbox_debug_viewDlg::OnBnClickedBtSend()
{// TODO: Add your control notification handler code hereif(m_OpenStatus ==false){AfxMessageBox(_T("请先打开串口"));return;}UpdateData(TRUE);if(m_SendString.IsEmpty())return;if(m_AutoAddLF){m_SendString +="\r\n";}m_mscomm.put_Output(COleVariant(m_SendString));ShowInfo(m_SendString);
}

如何使用MScomm控件相关推荐

  1. VC基于MSCOMM控件串口通讯

    在mfc中进行串口通讯最简单的方法莫过于在对话框中使用MSCOMM控件了,MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其他通信设备(如Modem). 还可以发送命 ...

  2. Delphi利用MSCOMM控件进行GPS数据采集

    1.准备 GPS(Global Positioning System),即全球定位系统,利用GPS卫星的测距和测时功能进行全球定位,在许多系统中,如机场导航系统,出租车辆管理和调度系统.江河流域的灾害 ...

  3. 在 Wi ndows,MSComm控件在中文Wi的ndows下的通信问题与处理方法.doc

    MSComm控件在中文Wi的ndows下的通信问题与处理方法 MSComm控件在中文Windows下的通信问题与处理方法 摘 要VB 5.0/6.0的MSComm通信控件提供了一系列标准通信命令的接口 ...

  4. 串口MSComm控件五种不同校验方式对数据收发的影响

    (2008-09-10 14:50:00)   http://blog.sina.com.cn/s/blog_470eccc60100arq7.html   串口MSComm控件有五种校验方式,分别是 ...

  5. VS2008下用MFC 的MSComm控件编写串口程序

    可以在:http://download.csdn.net/detail/plutus_lee/4525446 下载详细文档. 首先感谢网络资源吧,作为一个自动化专业出身的,不懂串口实在让我有点无奈,本 ...

  6. MSComm控件过程中内存溢出和GetOneDimSize出错的问题

    MSComm控件过程中内存溢出和GetOneDimSize出错的问题 现在做的一个项目需要实现上位机和单片机的串口通信,为了方便,使用了MSComm控 件,但写程序时在处理接收数据遇到了问题,程序可以 ...

  7. VS2010如何安装MSComm控件

    VS2010在默认情况下是不包含MSComm控件的,MSComm是在VC6.0中的控件,据说MSComm控件有些缺陷,看来微软是打算放弃此控件了.不过对于已经熟悉使用此控件的人来说还是不太方便,我是那 ...

  8. VS2010如何添加MSCOMM控件

    VS2008后,就没有MSCOMM控件了,用户想用只能手动添加 下载MSCOM控件 (百度下载即可)(全名为:mscomm32.ocx) 控件注册 将控件复制到如下路径下: c:\windows\sy ...

  9. VC++ 6.0之MSComm控件安装、使用

    Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控 ...

最新文章

  1. 产品网络推广方案浅谈网站的相关性对优化的影响!
  2. win服务器自动发邮件,windows关机前执行脚本设置与关机blat自动发送邮件脚本模板...
  3. @jsonfield注解_好了,不装了,撸个注解有什么难的!
  4. [旧稿]How To Add Simple Install WebPart Menu to the Right Click On a CAB File
  5. ECCV18 | 如何正确使用样本扩充改进目标检测性能(附Github地址)
  6. 信息系统项目管理师论文历年题目2005-2020
  7. 查看服务器内存、CPU、网络等占用情况的命令--汇总
  8. (42)css特异性
  9. 从 JMM 透析 volatile 与 synchronized 原理
  10. 在线教育网校系统源码,搭建可以解决培训考试的教学平台
  11. 牛腩新闻发布系统—错误总结
  12. 微信购物商城系统怎样吸引住客户,来转换为商城系统的粉丝?
  13. 经济可行性分析的目的
  14. 基于VUE+H5PLUS 实现app交互蓝牙打印机得功能
  15. 详解易经64卦-傅佩荣有声系列2
  16. 专家修炼-学习的方法
  17. Android 多国家语言适配
  18. nmap+nagios
  19. zhaowei -列表知识问答(王者农药)
  20. 子域名挖掘,子域名爆破,Python脚本编写(Python安全攻防)。

热门文章

  1. 愉快的学习就从翻译开始吧_0-Time Series Forecasting with the Long Short-Term Memory Network in Python
  2. 【直播回顾】战码先锋首期8节直播完美落幕,下期敬请期待!
  3. k30s刷鸿蒙系统,RedmiK30S或于10月27日发布:今年最后一款骁龙865手机
  4. Mac软件:分享五款实用的Mac软件,值得收藏
  5. 计算机毕业设计Android安卓旅游结伴景点评论-酒店预订系统app用户相约伴一起游玩
  6. uniapp中调用震动、系统铃声以及自定义铃声
  7. 月结6 - AR和AP重分类(Regroup)[FAGLF101/OBBU/OBBV]
  8. linux免采集卡直播ps4,PS4游戏直播采集卡使用教程详解
  9. MySQL中information_schema详解
  10. 深度挖掘新闻营销带给企业的好处和优势