我是用串口监测(accessport工具)来看发送和接收数据是否成功。但是我发现某些字不能成功接收,例如 “你”,“ 他”  为什么呢?就是接收 “你”这个字的部分16进制的数。

解决方案 »

  1.   

    Inx_XonXoffFlow:=False;
    Outx_XonXoffFlow:=False;
      

  2.   

    1. 1楼明显外行, 数据与字库无任何关系;
    2. 串口通许编程还是比较简单的, 但也要有些数据格式基础(bit,char,byte,word...)和实践经验(串口通讯控制); 最好自己做条串口线, 连接两台电脑, 自己控制收发, 多做些练习就慢慢熟悉了;
    3. 楼主稍微要注意的一点是: 汉字的编码(以最常用的GB2312为例)用两个字节(或者说Word),会使用到字节的高位(也就是要用到一个字节的所有8个位, 两个字节一共16位), 而常用的英文字符(因为少, 常用7位(最多可以表示128个字符); 具体到串口控制, 就是要选择通讯控制参数的数据位=8位;  
    4. 但楼主的问题还是比较怪的: 你接收大多数汉字没有问题? 而只是接收少数汉字('你''我'等)才有问题? 这种错误情况理论上在程序中不多见的; 所以还要请你确认是否是接收大多数汉字正确, 而接收少部分汉字错误? 
      

  3.   

    我刚才试了一下,“你”,“ 他”也都可以发送和接收啊,把你写的代码跟spcomm设置发来看看吧
      

  4.   

    汉字是Unicode编码,是两个字节的编码。
      

  5.   

    但是我用32*32的字库,这几个字的16进制数没有13H,11H啊,需要加吗?
    Inx_XonXoffFlow:=False; 
    Outx_XonXoffFlow:=False;