wyb4993 发表于 2009-5-25 11:17:31

串口配置的“超时”时间,要怎么设置?谢谢!

如下图:

默认是10秒。我发现在10秒下,labview做的 自动识别串口程序,识别串口很慢。我尝试修改超时时间为500毫秒,识别串口很快了,在采样率为10/秒、25/秒和50/秒下,测试也没有问题。但如果采样率为1/秒、1/10秒,串口读取数据就乱了。晕,,,

请教一下如何解决?谢谢!

heliwen 发表于 2009-5-25 14:32:12

听说好像一般超时时间大概是33个字节,比如波特率是9600,超时33ms就可以,我也是听别人说的,不能确定

wyb4993 发表于 2009-5-25 17:10:57

labview串口的超时是个大问题,我现在的波特率远远高于9600,我尝试设置串口的超时为33毫秒,结果全乱了。

gigio 发表于 2009-5-26 09:53:12

这个需要试验咯。或者先缓冲,像版主前段时间发的队列咯。

heliwen 发表于 2009-5-26 13:19:13

超时跟波特率有关,我说的33ms是针对9600的,你按照你的波特率算一下

fjczd 发表于 2009-5-26 16:27:59

有经验公式么

3no 发表于 2009-5-26 16:54:15

3# wyb4993

传输速度快了,超时时间设置短了,发的一包数据都没收完就处理,出来乱码也不奇怪吧。

3no 发表于 2009-5-26 16:56:02

6# fjczd

我不清楚我们说的是不是一件事情。

在我的理解里,如果清楚下面会回来多少字节的数据,那么加上校验位和停止位,就知道一共有多少bit,然后根据波特率就能算出时间,超时的时间可以适当的多一些。

wyb4993 发表于 2009-5-26 19:46:49

谢谢大家的热心回复!

经过两天的实验,我想我的这个问题应该是解决了。

请注意:波特率和AD采样率是不同的概念。

按照labview帮助的说明,串口的超时时间是指VISA读写串口数据操作的超时值。所以,如果采样率是每10秒采集一个数据,但超时时间设置为1秒或更小,那么肯定出问题。

所以,根据不同采样率来设置不同的串口读写超时时间,就可以解决这个问题。当然,串口读写超时时间还受到波特率的影响。

即在波特率一定的情况下,不同的AD采样率如果相差很大,那么串口读写超时时间的设置是不同的。

谢谢!
页: [1]
查看完整版本: 串口配置的“超时”时间,要怎么设置?谢谢!