hzxking512 2019-03-19 16:13 采纳率: 0%
浏览 801

C# 通过串口重复发送16进制数据有时候接收不正确的问题

C#编写的代码
串口信息
速率9600bits
数据8bit
停止1bit
校验无
软件发送 01 06 00 0c 00 00 49 c9(转换成byte[]发送)
串口调试工具接收到的数据正常时候为 01 06 00 0c 00 00 49 c9
但是会时不时的出现(前面4个不一样)00 00 63 20 00 00 49 c9
附图是连续发送50次接收到的数据

图片说明


但是如果软件发送01 06 00 0c 00 01 88 09
串口调试工具接收的数据就没问题一直都是01 06 00 0c 00 01 88 09
如果把有问题的数据01 06 00 0c 00 00 49 c9最后一个c9,改成09,那也接收没问题
小弟完全搞不明白,请大神解惑.

  • 写回答

2条回答 默认 最新

  • qq_21049221 2020-01-17 00:49
    关注

    1:读取完数据后,有无清空缓冲区的数据?
    2:发送数据时,是否正处于接收数据?
    我也是刚学,一开始做的串口也会这样;的解决方法是:在串口接收数据引发的datareceived中先延一点时(几十豪秒),再处理接收到的数据;然后清除接收到数据,顺便创建一个接收空闲标识变量等于零;
    在发送数据时,确认接收空闲变量等于零时才发送!(还不会委托,多线程等;感觉会这些会有更好的解决办法)

    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法