社区
网络及通讯开发
帖子详情
串口通讯接收错误的问题
killer80719
2004-11-20 11:26:40
在做串口通讯的时候,碰到了一个奇怪的问题。程序接收数据的时候,可能会有个别数据接收错误,但不是每包数据都有这个问题,但用串口调试助手接收就是正确的(我用两个串口同时接收,然后比较)。开始我使用的是MSComm控件,实在无法的情况下又改用API接收,仍然有问题,但接收错误的次数有一定减少。不知哪位高手也碰到过同样的问题,希望可以赐教。
...全文
601
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# 串口通信(彻底解决C#串口通信中的数据丢失
问题
)
以网上某位大虾的源码为版本,沿用了其可用的代码部分。对其余欠妥部分进行了改造。不要资源分,是大家不用为积分而烦恼。出来混都不容易,希望大家相互照应!
C#
串口通讯
接收
发送数据
C#
串口通讯
串口
接收
发送数据
C#
串口通讯
接收
数据
问题
利用SerialPort类与
串口通讯
出现两种情况:
1.
接收
到的数据仍旧是上次发送的数据。例如:第一次发送:FE2010-11-13 16:02:23EF
接收
为:FE2010-11-13 16:02:23EF(第一次正确)。当下次发送为:FE2010-11-13 16:02:24EF
接收
仍旧为FE2010-11-13 16:02:23EF。此处是利用Timer每秒发送一次数据。
接收
时用DataReceived事件。
2.DataReceived事件如果
接收
字节超过8个,则响应8的倍数
串口通讯
数据
接收
代码
分享一个
串口通讯
接收
数据的代码,可以
接收
数据并以十六进制的形式显示出来: 打开的设备为/dev/ttyUSB0,使用时需要修改权限: sudo chmod 777 /dev/ttyUSB0 或者修改group的权限。 可以通过cutecom工具查看自己的数据
接收
对不对。 cutecom工具使用的方法 #include <stdio.h> #include <unistd.h> //Used for UART #include <fcn
网络及通讯开发
1,316
社区成员
8,873
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章