基于Linux的tty架构及UART驱动详解 (7)

(5) 设置停止位,通过激活c_cflag中的CSTOP实现。若停止位为1,则清除CSTOPB,若停止位为2,则激活CSTOP

newtio.c_cflag &= ~CSTOPB; /*停止位设置为1*/ Newtio.c_cflag |= CSTOPB; /*停止位设置为2 */

(6) 设置流控

newtio.c_cfag |= CRTSCTS /*开启硬件流控 */ newtio.c_cfag |= (IXON | IXOFF | IXANY); /*开启软件流控*/

(7) 奇偶检验位设置,使用c_cflag和c_ifag.
设置奇校验

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;

(8) 设置最少字符和等待时间,对于接收字符和等待时间没有什么特别的要求,可设置为0:

newtio.c_cc[VTIME] = 0; newtio.c_cc[VMIN] = 0;

(9) 处理要写入的引用对象
tcflush函数刷清(抛弃)输入缓冲(终端程序已经接收到,但用户程序尚未读)或输出缓冲(用户程序已经写,但未发送)。

int tcflash(int filedes, int quene) quene数应当是下列三个常数之一: *TCIFLUSH 刷清输入队列 *TCOFLUSH 刷清输出队列 *TCIOFLUSH 刷清输入、输出队列 例如: tcflush(fd, TCIFLUSH);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdgsp.html