社区
硬件/系统
帖子详情
怎样清空串口的输入缓存
hanjinchidm
2008-09-09 09:57:22
各位大虾:
小弟在做一个串口通讯的程序,设备是一个条码扫描枪。扫描后得到的数据通过串口传入,我的程序就是从串口读取这个数据。现在我的问题是怎样清空输入缓存?因为我扫描一次后,在扫描第二次时发现字串还包含第一次的内容,我觉得应该是输入缓存没有清空的原因吧。在线等,急!!!
...全文
691
12
打赏
收藏
怎样清空串口的输入缓存
各位大虾: 小弟在做一个串口通讯的程序,设备是一个条码扫描枪。扫描后得到的数据通过串口传入,我的程序就是从串口读取这个数据。现在我的问题是怎样清空输入缓存?因为我扫描一次后,在扫描第二次时发现字串还包含第一次的内容,我觉得应该是输入缓存没有清空的原因吧。在线等,急!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loveisbug
2008-09-12
打赏
举报
回复
对的,一直读,读到读完为止。
一条晚起的虫
2008-09-10
打赏
举报
回复
在扫描第二次时发现字串还包含第一次的内容,我觉得应该是输入缓存没有清空的原因吧
//应该是扫码枪发送了多次的原因。可能扫码枪用的连续发送方式吧。
//一直读,读完为止。
VsirSoft
2008-09-10
打赏
举报
回复
PurgeComm(hCom,PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR ); //清干净输入、输出缓冲区
knightshenbin
2008-09-10
打赏
举报
回复
扫描后读走了没?readfile之后自动就清掉了读取的个数,实在不行就用PurgeComm也可以用来清除。最好用示波器抓了信号看看,是否发了多次。
lvzhenwei
2008-09-10
打赏
举报
回复
同意楼上的
lvzhenwei
2008-09-10
打赏
举报
回复
同意楼上的
zxy040220070
2008-09-09
打赏
举报
回复
控件GetInput()操作以后就清空了.
lvxuef
2008-09-09
打赏
举报
回复
[Quote=引用 1 楼 dirdirdir3 的回复:]
直接readfile来读就清空了......
[/Quote]
这个是正解.
jameshooo
2008-09-09
打赏
举报
回复
PurgeComm
mycool2001
2008-09-09
打赏
举报
回复
如果是API的话 用PurgeComm(hCom1,PURGE_RXCLEAR|PURGE_RXABORT)
如果是控件,我没有用过~~~~~
dirdirdir3
2008-09-09
打赏
举报
回复
直接readfile来读就清空了......
THCNC
2008-09-09
打赏
举报
回复
PurgeComm( hComm, PURGE_TXCLEAR );//清除发送缓冲区
PurgeComm( hComm, PURGE_RXCLEAR );//清除接收缓冲区
通用
串口
类,
串口
的读写
COMSTAT ComStat; DWORD dwErrorFlags; //错误标志位 BOOL bReadStatus;//读取状态 OVERLAPPED m_osRead;//
串口
设备的一些信息 memset(&m_osRead,0,sizeof(OVERLAPPED));//初始化内存 m_osRead.hEvent=CreateEvent(NULL,TRUE,TRUE,NULL); ClearCommError(hSerialComm,&dwErrorFlags,&ComStat);//清除
串口
的错误标志以便继续
输入
,输出操作 if(!ComStat.cbInQue) return 0; dwBytesRead = min(dwBytesRead,(DWORD)ComStat.cbInQue); bReadStatus=ReadFile(hSerialComm,buffer,dwBytesRead,&dwBytesRead,&m_osRead); if(!bReadStatus) //如果函数返回FALSE { if(ERROR_IO_PENDING==GetLastError()) { WaitForSingleObject(m_osRead.hEvent,2000); } } PurgeComm(hSerialComm,PURGE_TXABORT| PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);//
清空
读写
缓存
,停止为解决的读写操作
串口
清空
输入
输出
缓存
Linux
串口
编程——
清空
输入
输出
缓存
背景 在我们的工作中,
串口
是一种比较常用的数据传输方式。在某些应用场景下,当程序启动并打开
串口
后,我们不希望读出
串口
打开之前的
输入
缓存
数据(即内核驱动已接收但是并未被应用层读出的数据),因此需要对
输入
缓存
数据进行
清空
(刷清、丢弃)操作。下面以Linux系统上
串口
编程为例进行说明: 测试环境 硬件环境:PC 操作系统:Ubuntu 14.04虚拟机 ...
关于arduino
清空
串口
缓存
,大量数据过来,无法启动单片机
关于arduino
清空
串口
缓存
,大量数据过来,无法启动单片机
java如何清除
缓存
区,怎样用java
清空
串口
的
输入
缓冲区?解决方案
当前位置:我的异常网» J2SE»怎样用java
清空
串口
的
输入
缓冲区?解决方案怎样用java
清空
串口
的
输入
缓冲区?解决方案www.myexceptions.net网友分享于:2013-02-11浏览:96次怎样用java
清空
串口
的
输入
缓冲区?哪位兄弟知道怎样用java
清空
串口
的
输入
缓冲区?网上c/c++这方面的资料比较多,java一个也没有找到.------解决方案----------...
清空
串口
的
缓存
及应用
PurgeComm(hCom, PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章