MFC-串口控件的使用

来源:互联网 发布:小鹰电视直播软件 编辑:程序博客网 时间:2024/04/30 07:07

在程序中插入控件:

绑定变量后,就可以在程序中使用了.

初始化并打开串口:

bool CBrMonDlg::OpenCom(){//串口初始化if(m_cComm_ad_jdq.get_PortOpen()) //如果发现串口本来是打开的,则关闭串口m_cComm_ad_jdq.put_PortOpen(FALSE);m_cComm_ad_jdq.put_CommPort(1); //选择COM1端口m_cComm_ad_jdq.put_InputMode(1); //输入方式为二进制方式m_cComm_ad_jdq.put_InBufferSize(1024); //设置输入缓冲区m_cComm_ad_jdq.put_OutBufferSize(512); //设置输出缓冲区m_cComm_ad_jdq.put_Settings(TEXT("9600,n,8,1"));//波特率,无校验,个数据位,个停止位if(!m_cComm_ad_jdq.get_PortOpen()){m_cComm_ad_jdq.put_PortOpen(TRUE); //打开串口m_cComm_ad_jdq.put_RThreshold(1); //每当接收缓冲区有个字符则接收串口数据m_cComm_ad_jdq.put_InputLen(0); //设置当前缓冲区长度为m_cComm_ad_jdq.get_Input(); //预读缓冲区以清除残留数据return true;}else{AfxMessageBox(_T("打开端口失败!"),MB_ICONSTOP,0);return false;}}


插入响应comm时间并读取缓冲区内数据:

void CBrMonDlg::OnCommMscommAdJdq(){//从串口接收数据并显示在编辑框中VARIANT variant_inp;COleSafeArray safearray_inp;long len,k;byte rxdata[512]; //设置BYTE数组CString strtemp;if(m_cComm_ad_jdq.get_CommEvent()==2) //值为表示接收缓冲区内有字符{variant_inp=m_cComm_ad_jdq.get_Input(); //读缓冲区消息safearray_inp=variant_inp; ///变量转换len=safearray_inp.GetOneDimSize(); //得到有效的数据长度for(k=0;k<len;k++)safearray_inp.GetElement(&k,rxdata+k);for(k=0;k<len;k++) //将数组转换为CString型变量{int rxvalue = (int)*(char*)(rxdata+k); //转换为数据存入绘图缓冲区addValueToBuffer(rxvalue);char bt=*(char*)(rxdata+k); //字符型strtemp.Format(_T("%c"),bt); //将字符送入临时变量strtemp存放}}}

原创粉丝点击