6.串口操作之API篇 GetCommTimeouts SetCommTimeouts

GetCommTimeouts, SetCommTimeouts 用于设置串口接收发送数据的超时参数.

 1 function GetCommTimeouts(hFile: THandle; var lpCommTimeouts: TCommTimeouts): BOOL; stdcall;   
2 function SetCommTimeouts(hFile: THandle; const lpCommTimeouts: TCommTimeouts): BOOL; stdcall;
3 PCommTimeouts = ^TCommTimeouts;
4 _COMMTIMEOUTS = record
5 ReadIntervalTimeout: DWORD;
6 ReadTotalTimeoutMultiplier: DWORD;
7 ReadTotalTimeoutConstant: DWORD;
8 WriteTotalTimeoutMultiplier: DWORD;
9 WriteTotalTimeoutConstant: DWORD;
10 end;
11 TCommTimeouts = _COMMTIMEOUTS;
12 COMMTIMEOUTS = _COMMTIMEOUTS;

以下这段说明取自CnRs232的注释.写的很好,嘿嘿.
ReadIntervalTimeout:指定通信线路上两个字符到达之间的最大时间.在读取操作期间,从接收到第一个字符时开始计时,若任意两个字符到达之间的时间间隔超过这个最大值,则读取操作完成,返回缓冲数据.如果置0,表示不使用间隔超时.
ReadTotalTimeoutMultiplier:用于设定读总超时时间的系数.读总超时时间 = (总超时系数 X 接收字符数) + 总超时常量.常量和系数可分别为0。如果均为0,则不使用总超时设定.
ReadTotalTimeoutConstant:设定读总超时时间的常量值.读总超时时间 = (总超时系数 X 接收字符数) + 总超时常量.常量和系数可分别为0。如果均为0,则不使用总超时设定.
WriteTotalTimeoutMultiplier:用于设定写总超时时间的系数.写总超时时间 = (总超时系数 X 接收字符数) + 总超时常量.常量和系数可分别为0。如果均为0,则不使用总超时设定.
WriteTotalTimeoutConstant:用于设定写总超时时间的常量值.写总超时时间 = (总超时系数 X 接收字符数) + 总超时常量.常量和系数可分别为0。如果均为0,则不使用总超时设定.

超时设置在多设备采集的上位机上会显得很重要,有些设备是通过RS485连接,一条链路上会串联多个设备,这个时候,设置一个合理的超时时间,可以更快得到采集数据.不同的设备的接收超时参数也不同,需要通过多次试验取得一个合理的数值.

转载于:https://www.cnblogs.com/solokey/archive/2011/08/03/2126559.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值