


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MSComm控件接收数据并存储准备显示:接收数据 - 转换类型 - 判断长度 - 转换成数组 - 数组转换成字符型 - 送入临时变量 - 显示MSComm控件消息处理函数:void CSDICommView:OnComm() / TODO: Add your control notification handler code hereVARIANT variant_inp;COleSafeArray safearray_inp;LONG len,k;BYTE rxdata2048; /设置BYTE数组CString strtemp;CString strDisp; /用于显示接收数据 if(m_MSComm.GetCommEvent()=2) /启动variant_inp=m_MSComm.GetInput(); /读缓冲区safearray_inp=variant_inp; /VARIANT型变量转换为ColeSafeArray型变量len=safearray_inp.GetOneDimSize(); /得到有效数据长度for(k=0;klen;k+)safearray_inp.GetElement(&k,rxdata+k);/转换为BYTE型数组for(k=0;kTextOut(200,100,COM2接收到:+strDisp);/显示接收到的数据 ReleaseDC(pDC);strtemp.Format(OK,%s Received ,strDisp);m_MSComm.SetOutput(COleVariant(strtemp);/发送数据CSerialPort类消息处理函数:LONG CSerialPortTest2View:OnComm(WPARAM ch, LPARAM port)if(port=2) /COM2接收到数据 switch(ch)case $:/开始m_strRXDataCOM2=(char)ch;break;/跳出此次循环,继续进行判断case *:/结束m_strRXDataCOM2+=(char)ch;CDC* pDC=GetDC(); /准备数据显示 pDC-TextOut(10,150,COM2接收到+m_strRXDataCOM2);/显示数据 ReleaseDC(pDC);m_strRXDataCOM2.Replace($,Y);/COM2发送应答信息m_SerialPort1.WriteToPort(LPCTSTR)m_strRXDataCOM2); break;default:m_strRXDataCOM2+=(char)ch;break;return 0;MSComm控件初始化串口OnInitDialog()(部分) 步骤:选择-设置-打开-清除 /初始化COM2/m_ctrlMSCommCOM2.SetCommPort(2); /选择COM2m_ctrlMSCommCOM2.SetInputMode(1); /输入方式为二进制方式m_ctrlMSCommCOM2.SetInBufferSize(1024); /设置输入缓冲区大小m_ctrlMSCommCOM2.SetOutBufferSize(512); /设置输出缓冲区大小/波特率9600,无校验,8个数据位,1个停止位 m_ctrlMSCommCOM2.SetSettings(9600,n,8,1); /参数1表示每当串口接收缓冲区中有多于/或等于1个字符时将引发一个接收数据的OnComm事件m_ctrlMSCommCOM2.SetRThreshold(1); if(!m_ctrlMSCommCOM2.GetPortOpen()m_ctrlMSCommCOM2.SetPortOpen(TRUE);/打开串口m_ctrlMSCommCOM2.SetInputLen(0); /设置当前接收区数据长度为0m_ctrlMSCommCOM2.GetInput(); /先预读缓冲区以清除残留数据CSerialPort类基于对话框的应用程序打开串口:(含初始化串口)void CSerialPortTestDlg:OnButtonOpen() int nPort=m_ctrlComboComPort.GetCurSel()+1; /得到串口号,想想为什么要加1if(m_SerialPort.InitPort(this, nPort, 9600,N,8,1,EV_RXFLAG | EV_RXCHAR,512)m_SerialPort.StartMonitoring();/开启监测线程m_bSerialPortOpened=TRUE;/打开串口elseAfxMessageBox(没有发现此串口或被占用);m_bSerialPortOpened=FALSE;GetDlgItem(IDC_BUTTON_OPEN)-EnableWindow(!m_bSerialPortOpened);GetDlgItem(IDC_BUTTON_CLOSE)-EnableWindow(m_bSerialPortOpened);CSerialPort类基于对话框的应用程序发送数据:void CSerialPortTestDlg:OnButtonSend() / TODO: Add your control notification handler code hereif(!m_bSerialPortOpened) return; /检查串口是否打开UpdateData(TRUE); /读入编辑框中的数据m_SerialPort.WriteToPort(LPCTSTR)m_strEditSendMsg);/发送数据MSComm控件基于对话框发送数据void CMSCommMultiPortDlg:OnButtonCom1send() / TODO: Add your
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 免疫治疗疗效预测-洞察及研究
- 江苏省泰州市兴化市2026届高三上学期第一次调研测试历史试卷(含答案)
- 广东省东莞石碣中学2024~2025学年七年级上学期第一次月考英语试卷(含答案)
- 2024-2025学年福建省漳州市龙海区人教版三年级下册期末考试数学试卷(无答案)
- 部门安全业务培训课件
- 避雷器的试验课件
- 中职高考英语试卷
- 基于拓扑优化的传动轴座空间布局与热力学耦合仿真研究
- 国际标准差异导致出口设备功能适配的模块化设计创新实践
- 可降解材料临床使用后的微生物污染防控技术瓶颈
- 眼科护理个案分享案例
- 专题5.初中英语仁爱版单词表(按单元顺序)(七年级至九年级)中考英语词汇过关(默写版)
- 小学体育教案一年级上册教案全册
- 《生态环保循环经济》课件
- 化工分离工程课件
- 学校体育学(第三版)课件第三章学校体育的目的与目标
- A类《职业能力倾向测验》海南省三亚市乐东黎族自治县2023年事业单位考试全真模拟试题含解析
- 精益SMED快速换模改善
- 受力分析受力图课件
- 高阳小学2022-2023学年校内人车分流方案
- 一种基于STM32的智能门锁系统的设计
评论
0/150
提交评论