发 帖  
[问答]

labview串口通信丢数问题(非终止符问题)

1784 串口通信
奖励20积分
2025-1-20 09:13:40   评论 分享淘帖 邀请回答
4个回答
2025-1-20 09:13:41 8 评论

举报

8 条评论
  • 2025-2-6 09:25

    您的思路其实是先接收数据,再根据帧头和数据帧的长度做拼接,数据少了就等待下一帧数据拼接成完整的数据帧,数据多了就输出一帧数据剩余的再与下一次的数据拼接吧?这样的话如果某一帧数据下位机发送的就是少了一两个字节会不会导致后续所有的数据都不完整呢?

    世荣 回复 王子陵: 2025-2-6 13:57

    不会,少发的这一帧和下一帧会被踢掉,最后就会恢复正常

    世荣 回复 王子陵: 2025-2-6 14:07

    主要就是,缺少了一两个字节的数据帧和下一个完整数据帧拼起来后,一定能跑出一个校验不正确,但是长度够的数据帧,剩下的因为没有了完整帧头,尽管拼到再下一帧,也不影响检索。

    王子陵 回复 世荣: 2025-2-6 16:13

    数据内容有一个“时间”,这样的话从时间上可以看出数据是不连贯的

    世荣 回复 王子陵: 2025-2-6 20:58

    这个方法时候损失n不完整+1帧数据,不知道这个对你可不可以接受。假如你传输的帧本身就是不完整,那数据本身就不连贯。不清楚这个时间对你是不是很重要,如果一定要除开缺少字节的帧,其他数据都要完整输出,那可能得从其他地方保证下位机不丢字节。

    世荣 回复 王子陵: 2025-2-7 09:05

    那你只能加超时,当visa读取产生超时事件,再在事件里对提取到的所有字符串进行处理。这样可能能做到你想要的:除了丢失字节的数据帧,其他完整数据帧都能输出。

    王子陵 回复 世荣: 6 天前

    嗯嗯,感谢您的答疑!根据您提供的思路我再想想

    王子陵 回复 世荣: 5 天前

    嗯 感谢您的答疑,我再结合您的思路看看怎么处理更好吧

2025-1-20 10:12:55 1 评论

举报

1 条评论
  • 2025-1-22 11:29

    我现在是做了帧头+数据单元长度长度的读取方式,先读取24个字节确定帧头正确,然后根据读到的数据单元长度去读第二次。您提供的方式原理上是一致的,没办法解决读取字节数不稳定的情况,127只是目前功能,后续开发有不同字节数读取需求

2025-1-20 15:09:37 评论

举报

2025-2-6 09:27:54 1 评论

举报

1 条评论

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

您需要登录后才可以回帖 登录/注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@huaqiu.com
关闭

站长推荐 上一条 /6 下一条

快速回复 返回顶部 返回列表