微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 文件I/O编程之: 嵌入式Linux串口应用编程

文件I/O编程之: 嵌入式Linux串口应用编程

时间:08-13 来源:3721RD 点击:

为NL(换行符)

IUCLC

将接收到的大写字符映射为小写字符

IMAXBEL

当输入队列满时响铃

c_oflag用于控制终端端口发送出去的字符处理,c_oflag支持的常量名称如表6.12所示。因为现在终端的速度比以前快得多,所以大部分延时掩码几乎没什么用途。

表6.13 c_oflag支持的常量名称

OPOST

启用输出处理功能,如果不设置该标志,则其他标志都被忽略

OLCUC

将输出中的大写字符转换成小写字符

ONLCR

将输出中的换行符(‘\n’)转换成回车符(‘\r’)

ONOCR

如果当前列号为0,则不输出回车符

OCRNL

将输出中的回车符(‘\r’)转换成换行符(‘\n’)

ONLRET

不输出回车符

OFILL

发送填充字符以提供延时

OFDEL

如果设置该标志,则表示填充字符为DEL字符,否则为NUL字符

NLDLY

换行延时掩码

CRDLY

回车延时掩码

TABDLY

制表符延时掩码

BSDLY

水平退格符延时掩码

VTDLY

垂直退格符延时掩码

FFLDY

换页符延时掩码

c_lflag用于控制控制终端的本地数据处理和工作模式,c_lflag所支持的常量名称如表6.14所示。

表6.14 c_lflag支持的常量名称

ISIG

若收到信号字符(INTR、QUIT等),则会产生相应的信号

ICANON

启用规范模式

ECHO

启用本地回显功能

ECHOE

若设置ICANON,则允许退格操作

ECHOK

若设置ICANON,则KILL字符会删除当前行

ECHONL

若设置ICANON,则允许回显换行符

ECHOCTL

若设置ECHO,则控制字符(制表符、换行符等)会显示成"^X",其中X的ASCII码等于给相应控制字符的ASCII码加上0x40。例如:退格字符(0x08)会显示为"^H"(’H’的ASCII码为0x48)

ECHOPRT

若设置ICANON和IECHO,则删除字符(退格符等)和被删除的字符都会被显示

ECHOKE

若设置ICANON,则允许回显在ECHOE和ECHOPRT中设定的KILL字符

NOFLSH

在通常情况下,当接收到INTR、QUIT和SUSP控制字符时,会清空输入和输出队列。如果设置该标志,则所有的队列不会被清空

TOSTOP

若一个后台进程试图向它的控制终端进行写操作,则系统向该后台进程的进程组发送SIGTTOU信号。该信号通常终止进程的执行

IEXTEN

启用输入处理功能

c_cc定义特殊控制特性。c_cc所支持的常量名称如表6.13所示。

表6.13 c_cc支持的常量名称

VINTR

中断控制字符,对应键为CTRL+C

VQUIT

退出操作符,对应键为CRTL+Z

VERASE

删除操作符,对应键为Backspace(BS)

VKILL

删除行符,对应键为CTRL+U

VEOF

文件结尾符,对应键为CTRL+D

VEOL

附加行结尾符,对应键为Carriage return(CR)

VEOL2

第二行结尾符,对应键为Line feed(LF)

VMIN

指定最少读取的字符数

VTIME

指定读取的每个字符之间的超时时间

下面就详细讲解设置串口属性的基本流程。

1.保存原先串口配置

首先,为了安全起见和以后调试程序方便,可以先保存原先串口的配置,在这里可以使用函数tcgetattr(fd, &old_cfg)。该函数得到fd指向的终端的配置参数,并将它们保存于termios结构变量old_cfg中。该函数还可以测试配置是否正确、该

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top