请问串口(Com)操作中,输入输出缓冲区最大可为多大,我设成100K,函数调用成功,但好像不起作用啊!(100分)

  • 主题发起人 主题发起人 wcm811028
  • 开始时间 开始时间
W

wcm811028

Unregistered / Unconfirmed
GUEST, unregistred user!
是一个PDA应用项目,程序我都完成了,但现在出现一个问题!

我要从PC下载数据到PDA,如果我先启动PC发送数据,PDA稍等一下再接收数据,我要发送的数据没有100K,按道理等PC发送完了,我再接收数据都应该可以啊,但实际不行,有一些数据掉了,相当于缓冲区太小,把前面的数据冲掉了。

我现在想搞明白的是SetupComm函数中,输入输出缓冲区最大可为多大?

环境:

pda:hp的机子,2002的操作系统。PDA端程序用vs2003编写,串口操作用的是evc3.0写的dll,createfile采用的是同步方式!

pc:vs2003写的服务端程序!

通讯全是我自定义的,里面有校验检查,如果发送太早,接收太晚,会出现校验通不过,也就是数据都丢失了。

如果我发送的数据较少(只要不从PC下载数据的话,发送与接收的数据都比较少的)都一切正常!

请各位高手多多指教啊,欢迎大家一起学习!
 
你PDA具体的型号是什么啊?多少钱啊[:D]

//打听一下,正准备做和你类似的东西不过PDA的型号都还没选好呢

你确定是“缓冲区太小,把前面的数据冲掉了”?
 
来自:来如风

pda:hp jamada,彩屏的2300左右,还要加一个收发器!

你确定是“缓冲区太小,把前面的数据冲掉了”?

应该是:是我自定义的通讯格式,每个数据包都包括一个特殊的开头字符与一个结尾字符,
当然还有其它验证,我好判断发送与接收的数据是不是对的。但如果接收太滞后的话,接收的到字符与文件头都不相同了。(相当于已经是无用数据了!)
 
好的,谢谢了:)
 
COM口读数据的时候两次中间要sleep()一下。否则会读出数据部正确
 
来自:wr960204, 时间:2006-4-23 0:50:59, ID:3424028
COM口读数据的时候两次中间要sleep()一下。否则会读出数据部正确

我也有sleep啊,sleep(10)够不够!
 
后退
顶部