怎样清空串口的输入缓存

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 );//清除接收缓冲区

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧