mynameisbill2 2015-11-19 09:35 采纳率: 33.3%
浏览 2133
已结题

如何将串口接收到的数据返回给主线程并显示在编辑框中?

小弟用的是serialPort,MFC,怎么才能把串口接收到的数据返回给主线程显示在编辑框中?求大侠帮助!

 void CRBAS_ODBCView::OnButtonSurveyStart()
{
    /**************发数据*********************************/
    SerialPort^ _serialPort = gcnew SerialPort("COM3", 38400, Parity(0), 8, StopBits(1));//设置串口信息
    _serialPort->DataReceived += gcnew SerialDataReceivedEventHandler(DataReceived);
    array<unsigned char>^ SendBuf = {0x01,0xF0,0X01,0X08,0XF9,0X0D};
    if (!_serialPort->IsOpen)
        _serialPort->Open();
    for (int i = 0;i < SendBuf->Length;i++)
    {
        _serialPort->Write(SendBuf, i, 1);
        Sleep(10);
    }
    //Draw();
}
 void CRBAS_ODBCView::DataReceived(Object^ sender, SerialDataReceivedEventArgs^ e)
{
    SerialPort^ _serialPort = (SerialPort^)sender;
    Sleep(100);
    int count = _serialPort->BytesToRead;
    array<unsigned char>^ ReadBuf = gcnew array<unsigned char>(count);
    _serialPort->Read(ReadBuf, 0, count);
    //解析
    double m_dInFlow = (ReadBuf[2] * 65536 + ReadBuf[3] * 256 + ReadBuf[4]) / 1000.000;
    _serialPort->Close();
}
  • 写回答

1条回答 默认 最新

  • havedream_one 2015-11-19 10:22
    关注

    串口接收到数据之后,解析成功之后就给编辑框赋值就行了,可能需要设计两个线程之间的操作

    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制