糖果派对官方网站_可以赌钱的糖果游戏_手机版
MFC串口通信编制程序,MSCOMM读取串口缓冲区数据失利,VA瑞鹰IANT InputData = m_mscom.GetInput(卡塔尔;那条语句之后的代码都

MFC串口通信编制程序,MSCOMM读取串口缓冲区数据失利,VA瑞鹰IANT InputData = m_mscom.GetInput(卡塔尔;那条语句之后的代码都

作者:网络编程    来源:未知    发布时间:2019-12-24 21:22    浏览量:

bb电子糖果派对 1

/***************以下是打开串口的代码**********************/voidC串口通信Dlg::OnBnClickedButtonOpen(){CStringstr,str1,n;GetDlgItemText(IDC_BUTTON_OPEN,str);CWnd*h1;h1=GetDlgItem(IDC_BUTTON_OPEN);if(!m_mscom.GetPortOpen()){m_mscom.SetCommPort(m_comb1.GetCurSel()+1);//选择串口if(!m_mscom.GetPortOpen())m_mscom.SetPortOpen(TRUE);//打开串口elseMessageBox(_T("cannotopenserialport"));m_comb2.GetLBText(m_comb2.GetCurSel(),str1);//获取所选择到的波特率将其放入到str1中str1=str1+','+'n'+','+'8'+','+'1';//这句话很关键m_mscom.SetSettings(str1);//设置波特率m_mscom.SetInputMode(1);//设置输入方式1为二进制输入方式m_mscom.SetRThreshold(1);//缓冲区》=1个字符触发事件m_mscom.SetInputLen(0);//设置当前接收缓冲区数据长度为1024//m_mscom.SetRTSEnable(1);//设置RT允许if(m_mscom.GetPortOpen()){str="关闭串口";UpdateData(true);h1-SetWindowText(str);}unsignedcharInstStartRs[14]={238,170,01,0,01,01,0,0,01,0,0,0,0,187};SendDataToCom(InstStartRs);m_mscom.GetInput();//先预读缓冲区以清除残留数据}else{m_mscom.SetPortOpen(false);if(str!="打开串口"){str="打开串口";UpdateData(true);h1-SetWindowText(str);}}}/*****************发送数据的代码*************************/voidC串口通信Dlg::OnBnClickedButtonSend()//发送数据的按钮{//TODO:在此添加控件通知处理程序代码UpdateData(true);m_mscom.SetOutput(COleVariant(m_Editsend));}/***********************接收到数据触发OnCommMscomm1()事件***********************/voidC串口通信Dlg::OnCommMscomm1(){//TODO:在此处添加消息处理程序代码VARIANTInputData;COleSafeArrayfs;BYTErxdata[1024]={0};longlen,k;if(m_mscom.GetCommEvent()==2){InputData=m_mscom.GetInput();//读缓冲区fs=InputData;//VARIANT型变À量转换为COleSafeArray型变量len=fs.GetOneDimSize();for(k=0;klen;k++)fs.GetElement(k,rxdata+k);//转换为BYTE型数组 BYTEbt;for(k=0;klen;k++)//将数组转化为CString型变量{bt=*(rxdata+k);OnComByte(bt);}UpdateData(false);}}voidC串口通信Dlg::OnComByte(bytedata){if(data==0xeeEnd_RData_Flag){HeadFlag=true;//文件头收到m_nRxDataLength=0;m_strRXDataCOM[0]=data0xff;End_RData_Flag=false;}elseif(HeadFlagdata==0xff){Start_Rece_Flag=true;//可以接收数据了m_strRXDataCOM[1]=data0xff;m_nRxDataLength=2;HeadFlag=false;}elseif(Start_Rece_Flag(!HeadFlag)){m_strRXDataCOM[m_nRxDataLength]=data0xff;m_nRxDataLength++;}if(m_nRxDataLength==18){End_RData_Flag=true;m_nRxDataLength=0;HeadFlag=false;Start_Rece_Flag=false;START_FLAG=true;}}voidC串口通信Dlg::SendDataToCom(unsignedcharInstSend[14]){CByteArrayhexdata;for(intk=0;k=14;k++)hexdata.Add(InstSend[k]);hexdata.SetSize(14);m_mscom.SetOutput(COleVariant(hexdata));//发送十六进制数据}

下一篇:没有了
友情链接: 网站地图
Copyright © 2015-2019 http://www.tk-web.com. bb电子糖果派对有限公司 版权所有