打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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之前的输入输出队列中的数据都被清空了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
串口编程 tcflush()函数
STM32串口DMA方式接收数据。类似环形FIFO。超省CPU资源!
干货|高质量代码是怎么写出来的?串口环形队列
嵌入式开发绝招:状态机 事件驱动框架~
【精品博文】嵌入式开发中串口配置知多少
linux下串口的阻塞和非阻塞操作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服