其中串口中的一些重要的设备如下;

/*设置等待时间它最小接收字符*/
  newtio.c_cc[VTIME] = 1;
  newtio.c_cc[VMIN] = 0;
  newtio.c_lflag &= ~( ECHO | ECHOE | ISIG);
  newtio.c_lflag |=ICANON; //关闭ICANON标志就使终端处于非规范模式 现在处于打开 处于规范模式下
  newtio.c_oflag &= ~OPOST; //执行输出处理 现在就关闭状态
  newtio.c_iflag |= (IGNPAR | ICRNL); //忽略奇偶校验错误 将CR 映射成NL

int main(void)
{int fd;int nread,i,nwrite;char buff[]="Hello!\r\n";fd = open_port(fd);if (-1 == fd){perror("open error");return;}printf("open %d ok \n",fd);if((i=set_opt(fd,2400,8,'N',1))<0){perror("set_opt error");return;}printf("fd=%d\n",fd);nwrite=write(fd,buff,8);printf("nwrite=%d,%s\n",nwrite,buff);//nread=read(fd,buff,8);//printf("nread=%d,%s\n",nread,buff);fd_set rd;FD_ZERO(&rd);FD_SET(fd,&rd);while(FD_ISSET(fd,&rd)){if(select(fd+1,&rd,NULL,NULL,NULL) < 0)   //在此阻塞perror("select error!\n");else{while((nread = read(fd,buff,8))>0){printf("nread = %d,%s\n",nread,buff);}}}close(fd);return;
}

http://blog.chinaunix.net/uid-20788636-id-1841319.html

Linux串口编程select方式相关推荐

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

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

  2. Linux串口编程详解

    Linux串口编程详解(阻塞模式.非阻塞模式.select函数) 之前一直觉得串口编程很简单,这两天仔细研究后发现串口里的各种参数还挺复杂,稍不注意就容易出错,这里总结一下网上的各种文章及自己的理解与 ...

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

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

  4. Linux串口编程_termios

    1.1 Linux串口编程主要是设置structtermios结构体的个成员值.Termios是在POSIX规范中定义的标准接口,表示终端设备(包括虚拟终端丶串口等),串口是一种终端设备,一般通过终端 ...

  5. Linux 串口编程三 使用termios与API进行串口程序开发

    在 termios 结构体以及内部终端控制标志中,并非所有的参数对于实际的物理串口都是有效的,在使用过程中也不需要对于所有标志的作用都有所理解.事实上,快速掌握一项技术的核心点也是一种学习能力.对于使 ...

  6. Linux 串口编程二 深入了解 termios

    前言 这一系列串口编程重点在应用层编程,但是在讲解原理与相关概念时需要对驱动框架有个基础的认识.如果只是浅尝辄止,以后在遇到串口驱动与应用层程序调试难免遇到瓶颈.关于 tty驱动架构参见我的其他博客: ...

  7. Linux串口编程 —— 发送的数据无法被接收,且被原封不动返回

    Linux串口编程--发送的数据无法被接收,且被原封不动返回 问题描述 使用 #include <fcntl.h> /*文件控制定义*/ #include <termios.h> ...

  8. Linux 串口编程四 串口设备程序开发

    Linux 串口编程和程序相对来说是很简单的,之所以用博客连载来展示,主要是想在学会使用的基础上掌握相关背景,原理以及注意事项.相信在遇到问题的时候,我们就不会对于技术的概念和 API 的使用浅尝辄止 ...

  9. Linux 串口编程一 一些背景

    在大部分讲解 Linux 编程书籍的时候会发现没有单独的串口编程章节,实际上串口编程已经被概括在了"终端"或者"终端IO"章节里面.在上一篇博客中对经常出现的几 ...

最新文章

  1. java 银联支付反馈,微信支付/支付宝支付/银联支付,对比加总结(Java服务端)
  2. VS2015静态编译libcurl(C++ curl封装类)
  3. js 判断支持webgl_基于WebGL无插件虚拟场景漫游技术如何构建?ThingJS
  4. boost::contract模块没有宏实现base types的测试程序
  5. 从源码剖析SpringBoot中Tomcat的默认最大连接数
  6. Linux音频驱动-ASOC(ALSA System on Chip)
  7. 在线免费制图云平台架构
  8. zlib压缩解压缩文件
  9. python算法技巧——列表、字符串实用技巧
  10. 开水果店的一些拿货小建议,水果店第一次如何拿货
  11. 2020泰迪杯C题解题流程
  12. js、jquery操作复选框checkbox总结(单个/多个获取选中值、初始化设置默认选中值、全选反选)
  13. 为什么深度学习都在用python,你知道吗
  14. 写开源项目到底究竟有多赚钱?
  15. C++ ,C 筛法求素数
  16. 客户端邮件同步到webmail如何操作,电子邮件地址怎么注册?
  17. 诺基亚2016年会重返智能手机市场?
  18. 征服的荣耀服务器维护,《征服的荣耀》:游戏提供了场景编辑器,但内容的充实仍需等待...
  19. 纯前端实现—猜数字游戏
  20. 盘点三款好用的计时器

热门文章

  1. 澳拳击袋鼠体型巨大 身高超2米体重近200斤
  2. 2017 MongoDB中国用户大会部分嘉宾访谈集萃
  3. 了解WiFi的原理、工作原理以及相关的标准。
  4. 7-20 简单计算器
  5. 学会这几点,不懂代码也能做出炫酷可视化大屏!
  6. CocosCreator Shader学习(三):放大镜缩小镜效果
  7. 曾因“贿赂”苹果被罚款 10.3 亿美元,高通上诉成功
  8. 『R语言Python』建模前的准备:连续型与离散型变量探索,离散型变量转为虚拟变量
  9. 【CSS】 画优惠券锯齿边框样式
  10. 学习汇编语言-输入十进制数转为十六进制和二进制