linux 下串口编程VTIME和VMIN的设置

VTIME定义要求等待的时间量(取值不能大于cc_t)。

VMIN定义了要求等待的最小字节数。

 

options.c_cc[VTIME] = X;   //设置从获取到1个字节后开始计时的超时时间

options.c_cc[VMIN] = Y;     //设置要求等待的最小字节数

原始模式下对read()函数的影响:

1、X=0,Y!=0。函数read()只有在读取了Y个字节的数据或者收到一个信号的时候才返回;

2、X!=0,Y=0。即使没有数据可以读取,read()函数等待X时间量后返回;

3、X!=0,Y!=0。第一个字节数据到时开始,最先满足收到Y个字节或达超时时间X任意一个条件,read()返回;

4、X=0,Y=0。即使读取不到任何数据,函数read也会立即返回。

示例:

通过串口连ID卡读卡器,要求读串口至少收6个字节数据立即返回,可以将串口的上述两个设置项设置如下:

options.c_cc[VTIME]=0;

options.c_cc[VMIN]=6;

 

X == 10表示超时时间为1秒

posted @ 2015-03-09 15:06  阿青1987  阅读(717)  评论(0编辑  收藏  举报