串口通信中的CE_BREAK错误是由什么原因造成的?

ohoff 2007-02-07 02:06:25
我最近编程和一款数字万用表通信,该表使用RS-232接口与电脑相连(万用表端的插口好像是某种光电接口,datasheet上没有具体描述),波特率19200,odd校验,停止位1,数据位7。

我用mscomm控件尝试通信,不料打开串口后即触发1001:comEventBreak错误(input break was detected),无法收到万用表发来的数据。用串口调试助手(gjwtech上的那个)测试,同样收不到数据。我认为我的mscomm控件设置是正确的,因为可以收到其他外设发来的数据。

接着我尝试直接用API编程,使用CreateFile函数正确打开了串口(handle有效),但随即调用ClearCommError()后,lpErrors值为0x0010(据查是CE_BREAK错误,即通信中止)。

随后我用多款串口调试工具进行调试,大部分都不能正常接收数据。但有一款调试软件(铭心软体的)可以正常接收。并出现了一个奇怪的现象:当此软件打开串口接收一次数据,再关闭之后,我用API写的程序也能正确接收万用表的数据了(但使用mscomm控件的仍然不行)。

我想请问大家,为什么会出现comEventBreak错误或者CE_BREAK错误?为什么会出现我说的那种现象?谢谢大家!
...全文
775 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gfwu888 2010-04-29
  • 打赏
  • 举报
回复
我也出现这种现象,但不知是什么原因
尹成 2010-04-29
  • 打赏
  • 举报
回复
属性设置不对,api换成mscomm也行
walk_stop_walk 2007-07-27
  • 打赏
  • 举报
回复
我用PC与422串口通讯也遇到这个问题,你说的那个铭心软体的测试软件在哪里下载?我的MSN是mars_human@hotmail.com,谢谢
casinosun 2007-07-26
  • 打赏
  • 举报
回复
属性设置不对吧,api可以应该mscomm也行
一条晚起的虫 2007-07-26
  • 打赏
  • 举报
回复
CE_BREAK,貌似是停止位引起的错误,比较奇怪.
wangtk 2007-02-18
  • 打赏
  • 举报
回复
那个也许算不上错误!设备会发送中断信号!收到中断就会触发comEventBreak
ohoff 2007-02-10
  • 打赏
  • 举报
回复
难道没有人知道么……

2,644

社区成员

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

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