• 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引用对象输出都被结束后生效 所有已接受但未读入的输入都在改变发生前丢弃

  • 相关阅读:
    MySQL5.6 GTID、多线程复制
    WPS for Linux(ubuntu)字体配置(字体缺失解决办法)
    linux下用phpize给PHP动态添加扩展
    Zabbix汉化方法
    [FTP] Pure-FTPd SSL/TLS 配置方法
    PHP 缓存扩展opcache
    sftp搭建
    nginx https使用
    iptables基本规则
    kvm虚拟机安装
  • 原文地址:https://www.cnblogs.com/yuankaituo/p/4246737.html
Copyright © 2020-2023  润新知