Linux串口编程select方式
其中串口中的一些重要的设备如下;
/*设置等待时间它最小接收字符*/
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方式相关推荐
- 嵌入式Linux 串口编程系列3——通过VTIM、VMIN、select实现串口不定长数据接收功能
上一篇文章中,我们详细分析了VTIM和VMIN的功能, <嵌入式Linux 串口编程系列2--termios的VMIN和VTIME深入理解> 也明白了这两个参数设计的初衷和使用方法,接下来 ...
- Linux串口编程详解
Linux串口编程详解(阻塞模式.非阻塞模式.select函数) 之前一直觉得串口编程很简单,这两天仔细研究后发现串口里的各种参数还挺复杂,稍不注意就容易出错,这里总结一下网上的各种文章及自己的理解与 ...
- 嵌入式Linux 串口编程系列2--termios的VMIN和VTIME深入理解
在上一篇文章中,我们介绍了串口的一些基本知识.串口配置接口 termios结构体的概念,串口的配置参数有n多个,这里面不用都背下来,什么时候使用,翻看手册即可,但是有两个 参数是一定要理解的,就是VM ...
- Linux串口编程_termios
1.1 Linux串口编程主要是设置structtermios结构体的个成员值.Termios是在POSIX规范中定义的标准接口,表示终端设备(包括虚拟终端丶串口等),串口是一种终端设备,一般通过终端 ...
- Linux 串口编程三 使用termios与API进行串口程序开发
在 termios 结构体以及内部终端控制标志中,并非所有的参数对于实际的物理串口都是有效的,在使用过程中也不需要对于所有标志的作用都有所理解.事实上,快速掌握一项技术的核心点也是一种学习能力.对于使 ...
- Linux 串口编程二 深入了解 termios
前言 这一系列串口编程重点在应用层编程,但是在讲解原理与相关概念时需要对驱动框架有个基础的认识.如果只是浅尝辄止,以后在遇到串口驱动与应用层程序调试难免遇到瓶颈.关于 tty驱动架构参见我的其他博客: ...
- Linux串口编程 —— 发送的数据无法被接收,且被原封不动返回
Linux串口编程--发送的数据无法被接收,且被原封不动返回 问题描述 使用 #include <fcntl.h> /*文件控制定义*/ #include <termios.h> ...
- Linux 串口编程四 串口设备程序开发
Linux 串口编程和程序相对来说是很简单的,之所以用博客连载来展示,主要是想在学会使用的基础上掌握相关背景,原理以及注意事项.相信在遇到问题的时候,我们就不会对于技术的概念和 API 的使用浅尝辄止 ...
- Linux 串口编程一 一些背景
在大部分讲解 Linux 编程书籍的时候会发现没有单独的串口编程章节,实际上串口编程已经被概括在了"终端"或者"终端IO"章节里面.在上一篇博客中对经常出现的几 ...
最新文章
- java 银联支付反馈,微信支付/支付宝支付/银联支付,对比加总结(Java服务端)
- VS2015静态编译libcurl(C++ curl封装类)
- js 判断支持webgl_基于WebGL无插件虚拟场景漫游技术如何构建?ThingJS
- boost::contract模块没有宏实现base types的测试程序
- 从源码剖析SpringBoot中Tomcat的默认最大连接数
- Linux音频驱动-ASOC(ALSA System on Chip)
- 在线免费制图云平台架构
- zlib压缩解压缩文件
- python算法技巧——列表、字符串实用技巧
- 开水果店的一些拿货小建议,水果店第一次如何拿货
- 2020泰迪杯C题解题流程
- js、jquery操作复选框checkbox总结(单个/多个获取选中值、初始化设置默认选中值、全选反选)
- 为什么深度学习都在用python,你知道吗
- 写开源项目到底究竟有多赚钱?
- C++ ,C 筛法求素数
- 客户端邮件同步到webmail如何操作,电子邮件地址怎么注册?
- 诺基亚2016年会重返智能手机市场?
- 征服的荣耀服务器维护,《征服的荣耀》:游戏提供了场景编辑器,但内容的充实仍需等待...
- 纯前端实现—猜数字游戏
- 盘点三款好用的计时器