int i=0xBA;
CString m_strTXData;
m_strTXData+=(char) i;
m_ctrlComm.SetOutput(COleVariant(m_strTXData));//串口发送为什么?

解决方案 »

  1.   

    m_strTXData+=(char) i;
    错误很严重,应该是这样:
    char sBuf[4];
    sprintf(sBuf,"%02x",(char)i);
    m_strTXData+=sBuf;
      

  2.   

    你先用itoa函数将整形转换成字符串试试。
    要不然就考虑有什么函数将串口数据转换为你所需要发送的数据类型。
      

  3.   

    你原来的方法,可以用16进制收,用ASCII方式收,收到的数据大部分是无法显示的
      

  4.   

    为啥不用API自己写捏?
    char ch = 0xBA;
    DWORD dwBytesWrite = 0;
    WriteFile(hDevice, &ch, 1, &dwBytesWrite, NULL);
    为啥非要用控件捏?