我是一个字符一个字符收的数据,收到后,放入一个二进制数组中,但是我收到的数据中有的字符变成了"?",不过,我在单步调试的时候,在Watch里看正确的字符显示为'1',错误的数据显示为 '?  少了一个单括号,是不是我读取的时候掉了!还是TimeOut
m_CommTimeouts.ReadIntervalTimeout = 1000;
m_CommTimeouts.ReadTotalTimeoutMultiplier = 1000;
m_CommTimeouts.ReadTotalTimeoutConstant = 1000;
m_CommTimeouts.WriteTotalTimeoutMultiplier = 1000;
m_CommTimeouts.WriteTotalTimeoutConstant = 1000;设置的不对呀!还是数据格式不对呀!我的数据来的速率是4800 bit/s,还请高手指教!!

解决方案 »

  1.   

    TimeOuts.ReadIntervalTimeout = 0xFFFFFFFF;
    TimeOuts.ReadTotalTimeoutMultiplier = 0;
    TimeOuts.ReadTotalTimeoutConstant = 0;
    TimeOuts.WriteTotalTimeoutMultiplier = 50;
    TimeOuts.WriteTotalTimeoutConstant = 2000;
    看看这样的标准设置行不行
      

  2.   

    字符变了说明baudrate有可能不对啊.你检测一下连接的baudrate是不是正确
      

  3.   

    回复人: zhangnanonnet(鱼欢) ( ) 信誉:166  2004-08-31 14:21:00  得分: 0  
    字符变了说明baudrate有可能不对啊.你检测一下连接的baudrate是不是正确波特率不正确,不可能有接收到正确的字符,贴主的程序的现象只是有时不正确
      

  4.   

    波特率没变哪!而且,大多组数据都正确,很偶尔的有一组数据里有一两个,还是在大数据量的时候!大概都是在800字节左右的时候!在Watch里看正确的字符显示为'1',错误的数据显示为 '? 少了一个单括号,不知道怎么回事!是不是我的输入缓存不够大啊!输入缓存在哪里设?
      

  5.   

    发送端一定正确?因为它是BYTE类型,不是char类型。所以当你发送的时候赋给它2,这面接收的为数值2,而不是字符2。