串口操作之刷清输入输出缓存操作 |
您所在的位置:网站首页 › 安卓缓存区 › 串口操作之刷清输入输出缓存操作 |
原文链接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 |