首页 > 其他 > 详细

串口阻塞与非阻塞

时间:2019-11-01 18:18:43      阅读:94      评论:0      收藏:0      [点我收藏+]

阻塞模式:(默认)

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;

 

非阻塞模式:O_NONBLOCK

 

 
 

串口阻塞与非阻塞

原文:https://www.cnblogs.com/yangxingsha/p/11778564.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!