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

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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题