spcomm 没用过,不过我也做过串行通讯的程序,仅提供一些看法,希望有帮助应该不是Buffer的原因,一般控件会设的比较大,如 1024,2048 bytes
你有调试看看是少了或是多了什么数据,位置是在前面还是后面?
数据发送的频率快吗?每个字节间时间长吗? 你使用的控件接受的方式是否是定时器定时检查,如果是,看看它有没有Polling之类的属性.
例如我做的对一个磁卡机操作的程序读出磁卡的内容,由于磁卡里的数据较长,约40bytes, Polling 是 50ms, 有时就会把一次数据处理成2次的,延长Polling 的时间就好了
你有调试看看是少了或是多了什么数据,位置是在前面还是后面?
数据发送的频率快吗?每个字节间时间长吗? 你使用的控件接受的方式是否是定时器定时检查,如果是,看看它有没有Polling之类的属性.
例如我做的对一个磁卡机操作的程序读出磁卡的内容,由于磁卡里的数据较长,约40bytes, Polling 是 50ms, 有时就会把一次数据处理成2次的,延长Polling 的时间就好了
字节个数不对,数据值也不正确。
... ...
Length: 9, 04 10 06 41 66 50 60 a2 6b //第n次测试
Length:10, 06 41 66 10 62 03 05 21 15 f8 //第n+1次
... ...
据协议分析,后两位数是多出来的两位,各位对应的值据协议似乎应当是如下示:
秒 时 分 日 月 周 年 crc校验值 后两位a2 6b,或15 f8数值可能有问题的数。
即 2005年3周62月10日66分41时06秒