分享

如何清除串口缓冲区中的数据

 心不留意外尘 2016-06-11

http://blog.csdn.net/kangkermit/article/details/8184880

2012

tcflush函数清除串口输入缓存(终端驱动已接到,但用户尚未读取)或串口输出缓存(用户已经写如缓存,但尚未发送)。

函数原型:

int tcflush(int filedes,int quene)

参数解释

filedes:  描述符。

quene取值及含义:

   *TCIFLUSH  清除输入队列
   *TCOFLUSH  清除输出队列
   *TCIOFLUSH 清除输入、输出队列

举例:tcflush(fd,TCIOFLUSH);


另加的说明:

在打开串口后,用户其实其实已经可以开始从串口读取数据了,但如果用户没有读取,数据将被将保存在缓冲区里。如果用户不想要开始的一段数据,或者发现缓冲区数据有误,可以使用这个函数将缓冲区清空。


应用举例:

tcflush(fd, TCIOFLUSH);

sleep(2);
read_len = read(fd, buff, 10);

这样,在sleep之前的输入输出队列中的数据都被清空了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多