zoukankan      html  css  js  c++  java
  • linux 下串口的配置

    串口最基本的设置包括波特率 校验位 和停止位。

    主要是设置个结构体的成员值,

    #include <termios.h>

    struct termio {

    unsigned short c_iflag; /*输入模式标志*/

    unsigned short c_oflag; /*输出模式标志*/

    unsigned short c_cflag; /*控制模式标志*/

    unsigned short c_lflag; /*本地模式标志*/

    unsigned short c_line; /*line discipline*/

    unsigned short c_cc[NCC];

    /*control characters*/ }

    保存原先的串口配置

    if (tcgetattr(fd, &oldtio) != 0) peeror(“get old termio error”);

    2 激活CLOCAL CREAD CLOCAL CREAD 用于本地连接和接受使能, nwtio.c_cflag|= CLOCAL | CREAD;

    3 设置波特率 设置波特率要用专门的函数,不能直接通过掩码来操作。 cfsetispeed (newtio, B115200); cfsetospeed (newtio, B115200);

    4 设置字符大小 用掩码设置

    newtio.c_cflag &= ~CSIZE;

    newtio.c_cflag |= CS8;

    5 设置奇偶校验位 奇校验

    newtio.c_cflag |= PARENB;

    newtio.c_cflag |= PARODD;

    newtio.c_iflag |= (INPCK | ISTRIP);

    偶校验 newtio.c_iflag |= (INPCK | ISTRIP);

    newtio.c_cflag |= PARENB; newtio.c_cflag &= ~PARODD;

    6 设置停止位 newtio.c_cflag &= ~CSTOPB;

    7 设置最少字符和等待时间 newti.c_cc[VTIME] = 0;

    newti.c_cc[VMIN] = 0;

    8 处理要写入的引用对象 tcflush (fd, TCIFLUSH);

    9 激活配置 tcsetattr (fd, OPTION, &newtio);

    Option: TCSANOW 改变的配置立即生效 TCSADRAIN 改变的配置在所有写入的fd的输出结束后生效 TCSAFLUSH 改变的配置在所有写入fd引用对象输出都被结束后生效 所有已接受但未读入的输入都在改变发生前丢弃

  • 相关阅读:
    2017ccpc全国邀请赛(湖南湘潭) E. Partial Sum
    Codeforces Round #412 C. Success Rate (rated, Div. 2, base on VK Cup 2017 Round 3)
    2017 中国大学生程序设计竞赛 女生专场 Building Shops (hdu6024)
    51nod 1084 矩阵取数问题 V2
    Power收集
    红色的幻想乡
    Koishi Loves Segments
    Wood Processing
    整数对
    Room and Moor
  • 原文地址:https://www.cnblogs.com/yuankaituo/p/4246737.html
Copyright © 2011-2022 走看看