串口配置流程
2015-06-24 15:29
218 查看
串口配置流程
1、保存原串口信息,使用tcgetattr()函数;
2、激活选项有CLOCAL和CREAD,用于本地连接和接收使能;
3、设置波特率,使用函数cfsetispeed()和cfsetospeed();
4、设置数据位,需使用掩码设置。
5、设置奇偶校验位,使用c_cflag和c_iflag。
6、设置停止位,通过激活c_cflag中的CSTOPB实现。若停止位为1,则清除CSTOPB,若停止位为2,则激活CSTOPB。
7、设置最少字符和等待时间,对于接收字符和等待时间没有特别要求时,可设为0;
8、处理要写入的引用对象
9、激活配置,在完成配置后,需激活配置使其生效。使用tcsetattr();
1、保存原串口信息,使用tcgetattr()函数;
struct termios newtio, oldtio; tcgetattr(fd, &oldtio);
2、激活选项有CLOCAL和CREAD,用于本地连接和接收使能;
newtio.c_cflag |= CLOCAL | CREAD;
3、设置波特率,使用函数cfsetispeed()和cfsetospeed();
cfsetispeed(&newtio, B115200); cfsetospeed(&newtio, B115200);
4、设置数据位,需使用掩码设置。
newtio.c_cflag &= ~CSIZE; newtio.c_cflag |= CS8
5、设置奇偶校验位,使用c_cflag和c_iflag。
奇校验: newtio.c_cflag |= PARENB; newtio.c_cflag |= PARODD; newtio.c_iflag |= (INPCK | ISRIP); 偶校验: newtio.c_iflag |= (INPCK | ISRIP); newtio.c_cflag |= PARENB; newtio.c_cflag &= ~PARODD; 无校验: newtio.c_cflag &= ~PARENB;
6、设置停止位,通过激活c_cflag中的CSTOPB实现。若停止位为1,则清除CSTOPB,若停止位为2,则激活CSTOPB。
newtio.c_cflag &= ~CSTOPB;
7、设置最少字符和等待时间,对于接收字符和等待时间没有特别要求时,可设为0;
newtio.c_cc[VTIME] = 0; newtio.c_cc[VMIN] = 0;
8、处理要写入的引用对象
tcflush函数刷新输入缓存(终端驱动程序已接收到,但用户程序尚未读)或输出缓存(用户程序已经写,但尚未发送) int tcflush(int fileds, int queue); queue数是下列3个常数之一: TCIFLUSH:刷新输入队列 TCOFLUSH:刷新输出队列 TCIOFLUSH:刷新输入输出队列
9、激活配置,在完成配置后,需激活配置使其生效。使用tcsetattr();
相关文章推荐
- Qrcode生成二维码
- LeetCode Remove Element
- Android之桌面组件AppWidget
- 解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
- 举例详解JavaScript中Promise的使用
- [VLFeat]Dense Sift的C源码学习
- 动态获取服务器时间
- thinkphp或者kohana 导入和读取文件
- weinre 远程调试 web
- MAC OX 配置JDK环境变量
- 一步一步搭建DRBD实验
- solr in Action 中文2.0 了解Solr
- 数据挖掘
- jq游戏----推箱子
- 找了一上午,才发现的问题
- 第七届中国保税物流发展论坛与中国仓储协会第十届中国仓储业大会合并举办
- LeetCode Remove Duplicates from Sorted Array
- 数据库接口开发
- finally不管有没有错都会运行 finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码
- Redis笔记