Linux应答文件是什么意思,Linux 串口编程: 应答报文拼接

c_iflag用于设置如何处理串口上接收到的数据,包含如下内容:

INPCK         Enable parity check

IGNPAR         Ignore parity errors

PARMRK      Mark parity errors

ISTRIP         Strip parity bits

IXON         Enable software flow control (outgoing)

IXOFF         Enable software flow control (incoming)

IXANY         Allow any character to start flow again

IGNBRK         Ignore break condition

BRKINT         Send a SIGINT when a break condition is detected

INLCR         Map NL to CR

IGNCR         Ignore CR

ICRNL         Map CR to NL

IUCLC         Map uppercase to lowercase

IMAXBEL      Echo BEL on input line too long

c_oflag用于设置如何处理输出数据,包含如下内容:

OPOST         Postprocess output (not set = raw output)

OLCUC         Map lowercase to uppercase

ONLCR         Map NL to CR-NL

OCRNL         Map CR to NL

NOCR         No CR output at column 0

ONLRET      NL performs CR function

OFILL         Use fill characters for delay

OFDEL         Fill character is DEL

NLDLY         Mask for delay time needed between lines

NL0            No delay for NLs

NL1            Delay further output after newline for 100 milliseconds

CRDLY      Mask for delay time needed to return carriage to left column

CR0            No delay for CRs

CR1            Delay after CRs depending on current column position

CR2            Delay 100 milliseconds after sending CRs

CR3            Delay 150 milliseconds after sending CRs

TABDLY      Mask for delay time needed after TABs

TAB0            No delay for TABs

TAB1         Delay after TABs depending on current column position

TAB2         Delay 100 milliseconds after sending TABs

TAB3         Expand TAB characters to spaces

BSDLY      Mask for delay time needed after BSs

BS0         No delay for BSs

BS1         Delay 50 milliseconds after sending BSs

VTDLY      Mask for delay time needed after VTs

VT0         No delay for VTs

VT1         Delay 2 seconds after sending VTs

FFDLY      Mask for delay time needed after FFs

FF0         No delay for FFs

FF1         Delay 2 seconds after sending FFs

c_cc定义了控制字符,包含以下内容:

VINTR  Interrupt  CTRL-C

VQUIT  Quit    CTRL-Z

VERASE   Erase    Backspace (BS)

VKILL   Kill-line   CTRL-U

VEOF   End-of-file   CTRL-D

VEOL   End-of-line   Carriage return (CR)

VEOL2   Second    end-of-line Line feed (LF)

VMIN   Minimum number of characters to read

VSTART   Start flow   CTRL-Q (XON)

VSTOP   Stop flow   CTRL-S (XOFF)

VTIME   Time to wait for data (tenths of seconds)

注意:控制符VTIME和VMIN之间有复杂的关系。VTIME定义要求等待的时间(百毫米,通常是unsigned char变量),而VMIN定义了要求等待的最小字节数(相比之下,read函数的第三个参数指定了要求读的最大字节数)。

如果VTIME=0,VMIN=要求等待读取的最小字节数,read必须在读取了VMIN个字节的数据或者收到一个信号才会返回。

如果VTIME=时间量,VMIN=0,不管能否读取到数据,read也要等待VTIME的时间量。

如果VTIME=时间量,VMIN=要求等待读取的最小字节数,那么将从read读取第一个字节的数据时开始计时,并会在读取到VMIN个字节或者VTIME时间后返回。

如果VTIME=0,VMIN=0,不管能否读取到数据,read都会立即返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值