急!利用Rs-2332通讯,如果接收的数据比较长,一次收不完怎办?(串口通讯知识的剖析,大家都来看看) (10分)

  • 主题发起人 主题发起人 青云
  • 开始时间 开始时间
来自:青云, 时间:2003-9-29 16:43:00, ID:2208260
李艾朋友,您的建议很好,我编的串口调试软件,是争对电气行业的101规约来的。
一般用异步接收。
其中报文的规则我们是不能改的。
每一帧一般都是以 68 开头, 16 结尾。
但是我在通讯过程中,不能用16作为一帧结束的标志,因为
这一帧中中间可能也有16
我想可能是利用api函数,根据串口状态判断一帧的结束。

自己仔细看协议。关于spcomm看它代码把。

哪个厂家的?
外面的串口调试软件不够实用。
 
学习一下
 
你可以先监测前面4个字节,101规定的有两种报文格式:可变帧及固定帧,可变帧以68 L L 68开头,其中两个L 表示本次通讯包的长度,你可以以此为准来接收数据或延时,固定帧是以10开头的它没有长度字节所以我一般是以幀校验和及结束字符(16H)来判断的.
 
呵呵!
我是 RedFox
你说的那个问题我也提过
没有什么好的办法
那么像 SpComm 用 在读线程里用
Readfile()读一大串的数据,直到读超时。

那么就先把数据读出来,再一个字节一个字节地分析。
没有别的办法了。

还有这几天我的手机坏了。
 
后退
顶部