有关串口通信的一些疑问?
1.这两个函数里设置的超时时限有什么区别吗?//设置通信超时时间
SetComTime (1, 5.0);
//设置串口Com1调制解调器参数
XModemConfig (1, 10.0, 10, 5.0, 1024);
2.禁止软硬件握手是为了提高通信速度吗?
3.ComRd和XModemReceive
这两个函数均是从串口读取数据,那二者有什么区别呢?
从上面这些问题我觉得有必要理解串口通信的协议是如何实现的,如果能给我讲一下将不胜感激! 1,没有用过超时,不太了解!不过第二个好像是MODEM的,第一个应该是普通串口的!应该就在这里!猜测而已,您最好先看一下它的HELP!
2,软硬件握手,如果握手不成功就不会通信上,有些东西不需要握手的,所以就可以不需要握手,有些需要的就一定得要的!
3,应该和第一个问题差不多!
串口通信的例子在CVI中有提供示例的,您可以看它的例子就可以用的,好运! 1,没有区别,一个参数多些,一般有硬件握手协议时用,如果自己定协议用软件实现,用SetComTime 可以了
2,第二个问题我也不清楚
3,一个用在有硬件握手协议,一个用在没有时
回答你
1:SetComTime (1, 5.0);该函数是有很大作用的.它防止进程死锁.试想你串口发了数据.而又接不到的时候.ComRd()函数就会一直等待.程序就运行不走了.
而有了这个SetComTime后.只要超过你第二个parameter.串口就默认读写一次.而不管你是不是真的读到还是发了数据. 2 协议 的意思是:我们谈得成就做.谈不成就不做.并不会说我们谈不成也做一点.
和速度是没有关系的.
回复 #4 hehuxun 的帖子
谢谢现在明白了一点,那就是关于SetComTime (1, 5.0);这个函数的重要性
页:
[1]