当前位置: 技术问答>linux和unix
linux下如何清空串口的输入输出缓存
来源: 互联网 发布时间:2015-09-22
本文导语: 串口1发送数据,串口2读取1发的数据。 我用tcflush(fd,TCIOFLUSH)清空串口1、2的缓存,但是结果很奇怪 串口1先发送asdf,串口2接受asdf 此时串口1发送可kg,串口2接受kgdf. 很纳闷。盼高手指点。 代码如下: int readcommsg( char...
串口1发送数据,串口2读取1发的数据。
我用tcflush(fd,TCIOFLUSH)清空串口1、2的缓存,但是结果很奇怪
串口1先发送asdf,串口2接受asdf
此时串口1发送可kg,串口2接受kgdf.
很纳闷。盼高手指点。
代码如下:
int readcommsg( char *readstring )
{
int rdcount=read( fd, readstring, 10 );
if(rdcount>0)
{
tcflush(fd,TCIOFLUSH);
return 1;
}
tcflush(fd,TCIOFLUSH);
return -1;
}
我用tcflush(fd,TCIOFLUSH)清空串口1、2的缓存,但是结果很奇怪
串口1先发送asdf,串口2接受asdf
此时串口1发送可kg,串口2接受kgdf.
很纳闷。盼高手指点。
代码如下:
int readcommsg( char *readstring )
{
int rdcount=read( fd, readstring, 10 );
if(rdcount>0)
{
tcflush(fd,TCIOFLUSH);
return 1;
}
tcflush(fd,TCIOFLUSH);
return -1;
}
|
你清空了串口缓存
但是没有清空readstring
在read前加上
bzero(readstring,10);
但是没有清空readstring
在read前加上
bzero(readstring,10);