社区
网络及通讯开发
帖子详情
串口通讯接收错误的问题
killer80719
2004-11-20 11:26:40
在做串口通讯的时候,碰到了一个奇怪的问题。程序接收数据的时候,可能会有个别数据接收错误,但不是每包数据都有这个问题,但用串口调试助手接收就是正确的(我用两个串口同时接收,然后比较)。开始我使用的是MSComm控件,实在无法的情况下又改用API接收,仍然有问题,但接收错误的次数有一定减少。不知哪位高手也碰到过同样的问题,希望可以赐教。
...全文
650
8
打赏
收藏
串口通讯接收错误的问题
在做串口通讯的时候,碰到了一个奇怪的问题。程序接收数据的时候,可能会有个别数据接收错误,但不是每包数据都有这个问题,但用串口调试助手接收就是正确的(我用两个串口同时接收,然后比较)。开始我使用的是MSComm控件,实在无法的情况下又改用API接收,仍然有问题,但接收错误的次数有一定减少。不知哪位高手也碰到过同样的问题,希望可以赐教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
killer80719
2004-12-08
打赏
举报
回复
呵呵:)
我也很期待阿。真的没有人碰到这种问题?看来我是中邪了。
Leighf
2004-12-08
打赏
举报
回复
期待
3xcom
2004-11-26
打赏
举报
回复
UP.
yjy1001
2004-11-24
打赏
举报
回复
估计是你的停止位或数据位设置有问题,如果停止位及数据位参数设置对,使用API接受,一般不会错。
rainboy1026
2004-11-24
打赏
举报
回复
用二进制处理比较好些,还有通讯的波特率不要太高
killer80719
2004-11-24
打赏
举报
回复
我的停止位、数据位都设置了,也是用二进制接受的,波特率只有600bps。初步可以判定是干扰造成的,可是干扰没有道理只影响我的程序不影响MSComm阿。另外,我看了CSerialPort等源代码,和我的接收方式都是一样的,不同之处只有我的只对EV_CHAR响应。我怀疑是数据转换的问题。我用的是unsigned char数组接收,然后用一个指针遍历,显示的函数是用的Edit->Text = Edit->Text + IntToHex(Pt)(Pt 为unsigned char*).不是IntToHex有问题吧?我也测试过,不用该函数也不显示,但收到的数据仍然有错误。真的没有办法了。高手难道没有碰到这种问题吗?
土著巫师
2004-11-23
打赏
举报
回复
在串口接收中使用二进制方式,不要用文本方式。最简单的办法是把接收的到数据落到一个二进制文件里,然后和发送的源文件比较。MSCOMM是同步方式I/O,效率不是很高。
killer80719
2004-11-21
打赏
举报
回复
没有人回吗?是不是问题讲得不够清楚?对错误码分析后发现,部分接收错误(硬件错误or软件错误?)的数据(如0x01)被替换成了(0x37),我对照ASCII看了一下,就是MSCOMM中出错的默认替代字符“?”。我找了一下,没有找到可以取消这个设置的属性,所以用API重新进行了改写,将fBinary的属性设置为false。我的意思是不需要进行纠错检查,以为可以忽略错误,收到什么即显示什么。也不知道这样推断是不是合适,反正有一定的效果,但仍然有错误数据。请高手指点!!!
C# 串口通信(彻底解决C#串口通信中的数据丢失
问题
)
以网上某位大虾的源码为版本,沿用了其可用的代码部分。对其余欠妥部分进行了改造。不要资源分,是大家不用为积分而烦恼。出来混都不容易,希望大家相互照应!
C#
串口通讯
Demo(VS2010)
一个简单的C#
串口通讯
Demo,可收发数据。
串口助手工具合集.zip
收集整理常用的一些串口工具,比如串口波形显示,modbus协议调试,串口多条发送等各种功能软件。
C# 串口操作系列(5)--通讯库雏形
C# 串口操作系列(5)--通讯库雏形 http://blog.csdn.net/wuyazhe/archive/2010/08/09/5797673.aspx 对应范例
C# 串口调试助手源代码
C#开发的串口调试助手。 功能相对简单,权当参考,大家可以根据自行需求开发相关功能。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章