串口操作之刷清输入输出缓存操作

您所在的位置:网站首页 安卓缓存区 串口操作之刷清输入输出缓存操作

串口操作之刷清输入输出缓存操作

2023-07-26 00:05| 来源: 网络整理| 查看: 265

原文链接tcflush()函数

tcflush函数刷清(扔掉)输入缓存(终端驱动已接管到,但用户尚未读)或输出缓存(用户已经写,但尚未发送).

  int tcflush(int filedes,int quene)   其中参数quene是下列三个常数之一:     TCIFLUSH  刷清输入队列     TCOFLUSH  刷清输出队列     TCIOFLUSH 刷清输入、输出队列

  例如:tcflush(fd,TCIFLUSH);

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

tcflush(fdcom, TCIFLUSH);

sleep(2); RecvLen = PortRecv(fdcom, RecvBuf, 10, portinfo.baudrate);

这样,在sleep之前发的数据都被清空了。

注意:如果是在任务中,需要不停地写入数据到串口设备,千万不能在每次写入数据到设备前,进行flush以前数据的操作,因为两次写入的间隔是业务控制的,内核不会保证在两次写入之间一定把数据发送成功。flush操作一般在打开或者复位串口设备时进行操作。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3