串口编程,当发中文时,收到乱码加中文,写又不会, 为什么?

解决方案 »

  1.   

    你那个串口的函数可能不支持扩展的ASCII,
    如果是发纯中文的话可以把字节减去0x80,
    半角标点可以通过定义特殊串来指示.
      

  2.   

    http://www.csdn.net/develop/read_article.asp?id=17465
      

  3.   

    发送:
    _variant_t vtSend;
    vtSend.SetString( "abceff" );
    m_Com.SetOutput( vtSend );接收:
    unsigned int uiLen;
    uiLen = m_Com.GetOutCount();  //记不清了,大概就是这个函数得到长度
    if ( uiLen > 0 )
    {
      VARIANT vtOk;
      m_Com.GetInput(vtOk);
      SetWindowText(vtOk.parray->pData);    //收到一堆乱码
    }怎么不对?
      

  4.   

    接受的时候
    有没有加结束符号
    ----------------------------------------------
    怎么加结束符?不是收到长度相同的字符吗?编码了以后再发
    ------------------------------------------------
    比如我要发送字符串 "abckdkkd",那如何编码?
    演示片段如上贴代码,如何做?
      

  5.   

    我不可能去编码或其它处理后再发,因发送方是另一个串口工具,如超级终端等,我只是有数据来是就收,但收到的有时是正确的中文,有时乱码加几个正确的中文,我认为是读时把没字折开了,把读BUF定最大应可以,但发送方每1毫秒发1024个汉字呢,还是有乱码