文本框关联的变量要和显示的数据的类型一致,但最简单的办法就是不管什么数据都转换字符型来显示,比如一帧数据有5个字节,1和2个字节代表电流,3和4个字节代表电压,第5个字节代表方向,按照低字节在前高字节在后,都按字符型显示,那么:
BYTE buff[5];
c=buff[0]+(WORD)buff[1]<<8;
v=buff[2]+(WORD)buff[3]<<8;
d=buff[4];
3个文本框,关联的变量分别是:CString m_Current,m_Voltage,m_Direction;
m_Current.Format("%d",c);
m_Voltage.Format("%d",v);
m_Direction.Format("%d",d);
UpdateData(FALSE);//加这句是显示到文本框上
也可以这样:
CString str;
str.Format("%d"m_Current);
GetDlgItem(IDC_EDIT1)->SetWindowsText(str);
电压和方向同样

解决方案 »

  1.   

    回复于: 2012-11-19 10:11:36  
    文本框关联的变量要和显示的数据的类型一致,但最简单的办法就是不管什么数据都转换字符型来显示,比如一帧数据有5个字节,1和2个字节代表电流,3和4个字节代表电压,第5个字节代表方向,按照低字节在前高字节在后,都按字符型显示,那么:
    BYTE buff[5];
    c=buff[0]+(WORD)buff[1]<<8;
    v=buff[2]+(WORD)buff[3]<<8;
    d=buff[4];
    3个文本框,关联的变量分别是:CString m_Current,m_Voltage,m_Direction;
    m_Current.Format("%d",c);
    m_Voltage.Format("%d",v);
    m_Direction.Format("%d",d);
    UpdateData(FALSE);//加这句是显示到文本框上
    也可以这样:
    CString str;
    str.Format("%d"m_Current);
    GetDlgItem(IDC_EDIT1)->SetWindowsText(str);
    电压和方向同样  
      

  2.   

    m_ctrlcom.SetRThreshold(4);  //当接收缓冲区有多于一个字符时将引发一个ONCOMM事件
    这里设置成缓冲区有多于四个字符产生数据处理时间响应?
      

  3.   

    不妨使用CxSerial串口类
    http://www.cnblogs.com/EdmundDwyane/p/3174308.html
    串口调试助手源码
    http://www.cnblogs.com/EdmundDwyane/p/3443074.html