完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
楼主做了一个串口接收数据的上位机,由于功能需求需要,串口接收数据的数据帧比较长,所以在接收大量数据时就会有出现一帧数据还未接收完,下一帧数据就再发过来把上一帧数据冲掉的情况出现,具体如面的示意图所示: 正常的数据帧为aaddssee01032045189128,但是因为接收数据帧有重叠,上一帧数据接收到aaddssee01032045时就被下一帧数据覆盖了,这2个拼成了aaddssee01032045aaddssee01032045189128 变成一个异常帧。 串口接收部分的程序如下: |
|
相关推荐
14个回答
|
|
|
|
|
|
两个方案,1 循环时间缩短点,改到20或10,,2 用VISA事件触发读取试试
|
|
|
|
循环时间缩短试过了,还是会有这个问题。用VISA事件的话整个软件的构架都要改,我还没用过呢,恐怕没那么快搞定,尝试一下吧…… |
|
|
|
你这一帧数据还不算太长,正在做的一帧57字节,频率50HZ没问题。这个你首先得看你下位机频率多大,注意不要有冲突。然后可以考虑用在采集的地方加顺序结构,确保读取完了再进行后续的处理和提取等操作。
|
|
|
|
hejin515 发表于 2016-6-7 11:58 下位机约1.8s发一帧数据,因为时序不是很严格,所以很难不冲突啊。我正在考虑把丢帧的异常数据舍弃掉算了,反正少几帧数据影响也不大 |
|
|
|
那你上位机的采样周期不应该小于1.8s,不然也没有意义。 |
|
|
|
|
|
|
|
谢谢分享,好东西
|
|
|
|
采样周期比发送周期时间还要长不行的吧,这样发送的数据不是更加会丢失吗 |
|
|
|
把配置串口关掉试试吧
|
|
|
|
遇到相同的问题了··同学·你解决了没
|
|
|
|
每次发送的字节数是不是相同?如果相同的话可以设置每次读取字节总数
|
|
|
|
给你提供一个思路:就是使用生产者消费者模式,来达到同步的要求
|
|
|
|
建议思路:使用生产者消费者模式进行修改程序框架,这样即使是延时不相等,数据也不会丢失
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1567 浏览 1 评论
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
2124 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1754 浏览 0 评论
1937 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
4844 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 09:20 , Processed in 0.735056 second(s), Total 73, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号