如何将一个字符,比如“回车”的ascii码0x0d,转化为相应的字符,放在一个字符串后面一起发送到串口呢?
具体:下面是串口通讯里面的发送问题:
m_strTXData是一个文本框,我想读取文本框的值,然后在其后面加上一个回车符,一起发出去
其中,如何将0x0d变成相应的字符呢?
CString strtemp=m_strTXData;strtemp=strtemp+chr(0x0d);   //在这里盗用了vb的函数chr(),肯定是不行的,怎么实现呢?
m_ctrlComm.SetOutput(COleVariant(m_strTXData));//发送ASCII字符数据

解决方案 »

  1.   

    另外,有没有可以得到字符ascii码的函数,并且是16进制的形式?
    谢谢
      

  2.   

    在串口通讯中,通常只传输可显字符,并把不可显字符,如0x0d等作为通讯控制字符.如果在传输内容里出现"控制字符",不但不能被接收到,有时还会影响通讯的继续.
    解决办法一:
    如果不是必须要传输二进制字符,可以在发收前后做转换,只传送可显示字符,这样0x0d就成了"0d".很多串口类设备就是这样做的.
    解决办法二:
    如果非传二进制,可以试试采用"硬件流控",这里有一段参考代码:
    //流控设置
    dcb.fOutxCtsFlow=0; // CTS handshaking on output       //HARDWARE
    dcb.fOutxDsrFlow=0; // DSR handshaking on output       //HARDWARE
    dcb.fDtrControl=DTR_CONTROL_ENABLE; // DTR Flow control                //HARDWARE
    dcb.fDsrSensitivity=1; // DSR Sensitivity                 //HARDWARE
    dcb.fRtsControl=RTS_CONTROL_ENABLE; // Rts Flow control                //HARDWARE
    dcb.fOutX=0; // Enable output X-ON/X-OFF        //SOFTWARE
    dcb.fInX=0; // Enable input X-ON/X-OFF         //SOFTWARE
    dcb.XonLim=1024; // Transmit X-ON threshold         //SOFTWARE
    dcb.XoffLim=1024; // Transmit X-OFF threshold        //SOFTWARE
    dcb.XonChar=0x11; // Tx and Rx X-ON character        //SOFTWARE
    dcb.XoffChar=0x13; // Tx and Rx X-OFF character       //SOFTWARE
    //
    dcb.ByteSize=8; //
    dcb.Parity=0; //
    dcb.StopBits=0; //
    SetCommState(m_hCom,&dcb);
    <完>
      

  3.   

    CString strtemp=m_strTXData;strtemp=strtemp+'\n';   //在这里盗用了vb的函数chr(),肯定是不行的,怎么实现呢?
    m_ctrlComm.SetOutput(COleVariant(m_strTXData));//发送ASCII字符数据
    char cha = 'A';
    strtemp.Format("%x", cha);