转载请注明: Linux串口c_cc[VTIME]和c_cc[VMIN]属性设置的作用 | 学步园 +

转载自 http://www.xuebuyuan.com/282373.html

在串口编程模式下,open未设置O_NONBLOCK或O_NDELAY的情况下。

c_cc[VTIME]和c_cc[VMIN]映像read函数的返回。

VTIME定义等待的时间,单位是百毫秒(通常是一个8位的unsigned char变量,取值不能大于cc_t)。

VMIN定义了要求等待的最小字节数,这个字节数可能是0。

如果VTIME取0,VMIN定义了要求等待读取的最小字节数。函数read()只有在读取了VMIN个字节的数据或者收到一个信号的时候才返回。

如果VMIN取0,VTIME定义了即使没有数据可以读取,read()函数返回前也要等待几百毫秒的时间量。这时,read()函数不需要像其通常情况那样要遇到一个文件结束标志才返回0。

如果VTIME和VMIN都不取0,VTIME定义的是当接收到第一个字节的数据后开始计算等待的时间量。如果当调用read函数时可以得到数据,计时器 马上开始计时。如果当调用read函数时还没有任何数据可读,则等接收到第一个字节的数据后,计时器开始计时。函数read可能会在读取到VMIN个字节 的数据后返回,也可能在计时完毕后返回,这主要取决于哪个条件首先实现。不过函数至少会读取到一个字节的数据,因为计时器是在读取到第一个数据时开始计时 的。

如果VTIME和VMIN都取0,即使读取不到任何数据,函数read也会立即返回。同时,返回值0表示read函数不需要等待文件结束标志就返回了。

Linux串口c_cc[VTIME]和c_cc[VMIN]属性设置的作用相关推荐

  1. linux 串口 vmin vtime ,Linux串口c_cc[VTIME]和c_cc[VMIN]属性设置的作用

    在串口编程模式下,open未设置O_NONBLOCK或O_NDELAY的情况下. c_cc[VTIME]和c_cc[VMIN]映像read函数的返回. VTIME定义等待的时间,单位是百毫秒(通常是一 ...

  2. Linux串口通信VTIME和VMIN的设置

    options.c_cc[VTIME] = 0; /* 设置超时0 seconds*/ options.c_cc[VMIN] = 13; /* define the minimum bytes dat ...

  3. 嵌入式Linux 串口编程系列2--termios的VMIN和VTIME深入理解

    在上一篇文章中,我们介绍了串口的一些基本知识.串口配置接口 termios结构体的概念,串口的配置参数有n多个,这里面不用都背下来,什么时候使用,翻看手册即可,但是有两个 参数是一定要理解的,就是VM ...

  4. linux 串口波特率的修改与sdma的设置

    最近这几天准备用串口实现DMA的传输数据,刚开始研究三天DMA,结果是一脸懵逼,无奈之下,只能跑去研究串口,结果发现Linux系统串口和DMA是真的难(小白,而且没人一起研究!),芯片手册对应的页数可 ...

  5. 嵌入式Linux 串口编程系列3——通过VTIM、VMIN、select实现串口不定长数据接收功能

    上一篇文章中,我们详细分析了VTIM和VMIN的功能, <嵌入式Linux 串口编程系列2--termios的VMIN和VTIME深入理解> 也明白了这两个参数设计的初衷和使用方法,接下来 ...

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

    VTIME定义要求等待的时间量(取值不能大于cc_t). VMIN定义了要求等待的最小字节数. options.c_cc[VTIME] = X; //设置从获取到1个字节后开始计时的超时时间 opti ...

  7. linux 下串口编程VTIME和VMIN的设置(转)

    VTIME定义要求等待的时间量(取值不能大于cc_t). VMIN定义了要求等待的最小字节数. options.c_cc[VTIME] = X; //设置从获取到1个字节后开始计时的超时时间 opti ...

  8. Linux下串口参数VTIME和VMIN的用法

    VTIME指定了等待的时间,VMIN指定了读取字符的最小数量. 它们不同组合地取值会得到不同的结果,分别如下: 1.当VTIME>0,VMIN>0时.read调用将保持阻塞直到读取到第一个 ...

  9. Linux C 串口属性设置

    1. 属性描述 串口属于终端设备,其接口属性用termios结构描述,如程序清单13.9所示. 程序清单13.9termios结构 struct termios { tcflag_t  c_cflag ...

最新文章

  1. Coursera课程Python for everyone:Quiz: Many-to-Many Relationships and Python
  2. 各省市数据中心机房工程新建项目汇总(2021年)
  3. 去中心化钱包CoinU基本介绍,你想知道的都有。
  4. python工厂模式 django_python设计模式-工厂方法模式
  5. [20161031]rman备份与数据文件OS块.txt
  6. 谷歌验证 (Google Authenticator) 的实现原理是什么?
  7. 绝不能放进微波炉的10样东西,最后一个太意外
  8. _UICreateCGImageFromIOSurface 使用API
  9. 综述 | Google团队发布,一文概览Transformer模型的17大高效变种
  10. iphone模拟器_iPhone 上玩真的 PSP 游戏,支持 iOS 13 系统
  11. 掌握这个分析方法,数据分析就学会了一半
  12. python字符串添加元素_python向字符串中添加元素的实例方法
  13. Ansible管理命令
  14. c语言贪吃蛇游戏的关键技术,C语言的贪吃蛇游戏设计
  15. css鼠标移上去向上移动,css3鼠标移动图片上移效果
  16. Tomcat的下载安装及静态部署
  17. 常用分辨率、帧率、码率
  18. 新巴塞尔资本协议(中英文)
  19. 木瓜移动:黑五网一爆冷跨境电商如何破局?
  20. 时分秒表达式java_java 时分秒正则表达式

热门文章

  1. 老闪创业那些事儿(外传)——林家小妹的码农男友
  2. SaaS的关键指标有哪些?7200字详解计算公式
  3. 销售人员如何打好专业基础、成为一名合格的销售?
  4. 初识Java中的并发
  5. 学计算机的机械硕士好找工作吗,学机械的为啥转行特别多?网友:一言难尽,就业率高,质量不高...
  6. 【计算题】(五)多元函数微积分学
  7. Word 2010 自定义首行缩进的快捷键
  8. hibernate中hbm.xmlmany-to-oneone-to-many中一些属性详解
  9. 分享一篇很棒的Linux IO栈讲解
  10. 动态规划:矩阵连乘问题