linux如何清空串口接收缓冲区和发送缓冲区数据

Posted somebot

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux如何清空串口接收缓冲区和发送缓冲区数据相关的知识,希望对你有一定的参考价值。


http://blog.chinaunix.net/uid-20564848-id-74763.html


tcflush(int fd, int queue_selector)   //对以写但未发出,或已接收但未读数据的flush.
discards data written to the object referred to by fd but not transmitted, or data received but not read, depending on the value of
       queue_selector:

       TCIFLUSH
              flushes data received but not read.

       TCOFLUSH
              flushes data written but not transmitted.

       TCIOFLUSH
              flushes both data received but not read, and data written but not transmitted.
              
tcgetattr(int fd, struct termios *termios_p)   //get串口termios结构
gets the parameters associated with the object referred by fd and stores them in the termios structure referenced by termios_p. This function may be invoked from a background process; however, the terminal attributes may be subsequently changed by a foreground process.

tcsetattr(int fd, int optional_actions, const struct termios *termios_p)   //设置串口termios结构
sets the parameters associated with the terminal (unless support is required from the underlying hardware that is not available) from the termios structure referred to by termios_p.   optional_actions specifies when the changes take effect:
TCSANOW
   the change occurs immediately.

TCSADRAIN
   the change occurs after all output written to fd has been transmitted. This function should be used when changing parameters that affect output.

TCSAFLUSH
   the change occurs after all output written to the object referred by fd has been transmitted, and all input that has been received but not read will be discarded before the change is made.

以上是关于linux如何清空串口接收缓冲区和发送缓冲区数据的主要内容,如果未能解决你的问题,请参考以下文章

matlab串口接收数据的问题

c#从串口读取数据怎样读一个就清空缓存

matlab读串口数据问题

linux串口发送时与上次不冲突

udp Socket 发送缓冲区 最大可以为多大

串口使用和CSerial类