lyq 发表于 2007-5-18 11:41:45

有关串口通信的一些疑问?

1.这两个函数里设置的超时时限有什么区别吗?
//设置通信超时时间
SetComTime (1, 5.0);
//设置串口Com1调制解调器参数
XModemConfig (1, 10.0, 10, 5.0, 1024);
2.禁止软硬件握手是为了提高通信速度吗?
3.ComRd和XModemReceive
这两个函数均是从串口读取数据,那二者有什么区别呢?
从上面这些问题我觉得有必要理解串口通信的协议是如何实现的,如果能给我讲一下将不胜感激!

cpubbs 发表于 2007-5-20 22:21:27

1,没有用过超时,不太了解!不过第二个好像是MODEM的,第一个应该是普通串口的!应该就在这里!猜测而已,您最好先看一下它的HELP!
2,软硬件握手,如果握手不成功就不会通信上,有些东西不需要握手的,所以就可以不需要握手,有些需要的就一定得要的!

3,应该和第一个问题差不多!

串口通信的例子在CVI中有提供示例的,您可以看它的例子就可以用的,好运!

easons 发表于 2007-5-21 20:09:45

1,没有区别,一个参数多些,一般有硬件握手协议时用,如果自己定协议用软件实现,用SetComTime 可以了
2,第二个问题我也不清楚
3,一个用在有硬件握手协议,一个用在没有时

hehuxun 发表于 2007-5-23 19:20:07

回答你

1:SetComTime (1, 5.0);该函数是有很大作用的.它防止进程死锁.试想你串口发了数据.而又接不到的时候.
ComRd()函数就会一直等待.程序就运行不走了.
而有了这个SetComTime后.只要超过你第二个parameter.串口就默认读写一次.而不管你是不是真的读到还是发了数据.

hehuxun 发表于 2007-5-23 19:21:48

2 协议 的意思是:我们谈得成就做.谈不成就不做.并不会说我们谈不成也做一点.
和速度是没有关系的.

lyq 发表于 2007-5-24 15:58:52

回复 #4 hehuxun 的帖子

谢谢
现在明白了一点,那就是关于SetComTime (1, 5.0);这个函数的重要性
页: [1]
查看完整版本: 有关串口通信的一些疑问?