#include <termios.h> 该函数用到 struct termios 该数据结构
/*定义一个termios结构体*/ struct termios options; /*将文件描述符的属性放入该结构体*/ tcgetattr(fd,&options); /*修改相应的属性*/ cfsetispeed(&options,B4800); cfsetospeed(&options,B4800); options.c_cflag |= CLOCAL;//保证程序不占用串口 options.c_cflag |= CREAD;//保证程序可以从串口中读取数据 options.c_cflag &= ~CRTSCTS;//不进行流控制 options.c_cflag |= CRTSCTS;//进行硬件流控制 options.c_cflag |= IXON|IXOFF|IXANY;//进行软件流控制 options.c_cflag &= ~CSIZE;//屏蔽其它标志位 options.c_cflag |= CS5; options.c_cflag &= ~CSIZE;//屏蔽其它标志位 options.c_cflag |= CS6; options.c_cflag &= ~CSIZE;//屏蔽其它标志位 options.c_cflag |= CS7; options.c_cflag &= ~CSIZE;//屏蔽其它标志位 options.c_cflag |= CS8; options.c_cflag &= ~PARENB;//PARENB:产生奇偶位,执行奇偶校验 options.c_cflag &= ~INPCK;//INPCK:使奇偶校验起作用 /*设为空格,即停止位为2位*/ options.c_cflag &= ~PARENB;//PARENB:产生奇偶位,执行奇偶校验 options.c_cflag &= ~CSTOPB;//CSTOPB:使用两位停止位 /*设置奇校验*/ options.c_cflag |= PARENB;//PARENB:产生奇偶位,执行奇偶校验 options.c_cflag |= PARODD;//PARODD:若设置则为奇校验,否则为偶校验 options.c_cflag |= INPCK;//INPCK:使奇偶校验起作用 options.c_cflag |= ISTRIP;//ISTRIP:若设置则有效输入数字被剥离7个字节,否则保留全部8位 /*设置偶校验*/ options.c_cflag |= PARENB;//PARENB:产生奇偶位,执行奇偶校验 options.c_cflag &= ~PARODD;//PARODD:若设置则为奇校验,否则为偶校验 options.c_cflag |= INPCK;//INPCK:使奇偶校验起作用 options.c_cflag |= ISTRIP;//ISTRIP:若设置则有效输入数字被剥离7个字节,否则保留全部8位 /*设置停止位*/ options.c_cflag &= ~CSTOPB;//CSTOPB:使用两位停止位 options.c_cflag |= CSTOPB;//CSTOPB:使用两位停止位 /*设置输出模式为原始输出*/ options.c_oflag &= ~OPOST;//OPOST:若设置则按定义的输出处理,否则所有c_oflag失效 /*设置本地模式为原始模式*/ options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); /* *ICANON:允许规范模式进行输入处理 *ECHO:允许输入字符的本地回显 *ECHOE:在接收EPASE时执行Backspace,Space,Backspace组合 *ISIG:允许信号 */ /*设置等待时间和最小接受字符*/ options.c_cc[VTIME] = 0;//可以在select中设置 options.c_cc[VMIN] = 1;//最少读取一个字符 /*如果发生数据溢出,只接受数据,但是不进行读操作*/ tcflush(fd,TCIFLUSH); /*将结构体写回文件描述符,激活配置*/ tcsetattr(fd,TCSANOW,&options)uart串口通信的初始化设置示例代码 https://blog.csdn.net/u010360266/article/details/107084561