串口通讯效率问题(spcomm) ( 积分: 100 )

  • 主题发起人 主题发起人 大痴
  • 开始时间 开始时间

大痴

Unregistered / Unconfirmed
GUEST, unregistred user!
使用spcomm开发串口通讯程序时,当接收数据量大时,要一次性接收完所有数据必须将接收延时加大或增大接收缓冲区,这就有一个问题,当数据量小的时候,时间白白浪费了导致效率不高。现在我采用将comm1的readintertimerout(可能拼写有误)设为1ms,即1ms去读缓冲区数据(或将接收缓冲区大小改为1),去读的时候缓冲区怎么始终为8,按道理应该comm收到1个字节就产生中断,应该收到一个字节才对?
不知有哪位大虾有何看法,对于提高串口接收效率有什么好方法,谢谢![8D]
 
使用spcomm开发串口通讯程序时,当接收数据量大时,要一次性接收完所有数据必须将接收延时加大或增大接收缓冲区,这就有一个问题,当数据量小的时候,时间白白浪费了导致效率不高。现在我采用将comm1的readintertimerout(可能拼写有误)设为1ms,即1ms去读缓冲区数据(或将接收缓冲区大小改为1),去读的时候缓冲区怎么始终为8,按道理应该comm收到1个字节就产生中断,应该收到一个字节才对?
不知有哪位大虾有何看法,对于提高串口接收效率有什么好方法,谢谢![8D]
 
不熟啊,也只是靠延时来接受大数据了
 
现在我采用将comm1的readintertimerout(可能拼写有误)设为1ms,
即1ms去读缓冲区数据(或将接收缓冲区大小改为1)???????

她是事件 触发的 是在 线称 里 WaitForMultipleObjects 的

你要用 事件
你说 的 那个 属性 好像 是 收到 数据后 等待 多少 时间 看看
还有没有 数据 继续 发过来。
 
就是有这个问题,我也碰到过,不延迟时读,总是只能读8个字节的,好象和操作本身有关,不过也不大明白,等待高手解惑。。。。
 
to hfghfghfg:
我是在事件里处理数据,即现在是等待1ms后(或缓冲区改为1,即缓冲区有1字节数据到达即触发中断)触发中断。
 
???????大家有什么想法吗?
 
别用控件了
自已用API来包装了一个类最好了
能最大限度地控制参数
 
cnpack中根据SPCOMM来改造了一个CN232的控件,也是带源码的,你去下来看有没有改善一些???
www.cnpack.org
 
我这就去看看
 
CN232?
好的,我去试试看
 

Similar threads

S
回复
0
查看
835
SUNSTONE的Delphi笔记
S
S
回复
0
查看
765
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部