我用VB串口接收从DSP发送过来的实时数据,每2ms一个字节,前面6000个左右的字节都能正确接收

我用VB串口接收从DSP发送过来的实时数据,每2ms一个字节,现在的问题是,前面6000个左右的字节都能正确接收,但是接着收到的总是错误的一组数据,不知道为什么,有谁遇到... 我用VB串口接收从DSP发送过来的实时数据,每2ms一个字节,现在的问题是,前面6000个左右的字节都能正确接收,但是接着收到的总是错误的一组数据,不知道为什么,有谁遇到过这种问题吗? 求教 展开
 我来答
百度网友f47aa74a1
2012-12-05 · TA获得超过527个赞
知道小有建树答主
回答量:338
采纳率:0%
帮助的人:152万
展开全部
每0.2mS就收一个字节,这要求你的程序要有很高的实时性。VB 不是最好的工具,C甚至是汇编更为合适。
你的程序性能有问题,运行速度太慢,
如果用VB:
1. 你要用中,高级的编程方法来编, 你的数据的快速和连续性,要求你的程序要有很高速度处理数据。
2 你的问题是. 当你运行一段时间后,你必须要在0.2秒内连续的一端要完成接收,另一端要处理数据,而且缓存也大体满了。如果你的程序性能达不到0.2秒完成所有的操作,那你的缓存就会迟早溢出。问题就发生啦。
3 为了确认就是上述问题,你把DSP改为发10秒左右,停发2 至3秒,再发10秒:如果这样你的程序能长期运行,那就是上述问题。
Cannonfish
2012-11-27 · TA获得超过447个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:87.1万
展开全部
首先确认这个现象是周期性出现的,即连续跑一段时间都是每隔6000个左右出现一次。如果是,则很有可能是程序中存在bag,排除方法参考:先粗略估算一下错误出现的间隔时间,然后查找程序中执行时间与之对等的部分。如果错误不是周期性的可能的情况有:1、通讯速率较快造成错误,适当的加点延时;2、个别数据类型不匹配,如上传整形却按照浮点型接收;3、通讯地址与设计的不匹配等等。如果通讯量较大建议先固定重复读少量地址内容,排除通讯是否有问题。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ferrarui
2012-11-28 · TA获得超过590个赞
知道小有建树答主
回答量:371
采纳率:0%
帮助的人:397万
展开全部
如果是周期性出现的,就按照Cannonfish的方法解决,他说的已经很详细了,如果不是周期性的出现,很有可能是你开辟的缓存区不够大,导致数据溢出被丢弃,也有可能是你的通信节拍没有对上,即VB端波特率和DSP端的波特率设置的不对等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jjdact
2012-11-27 · TA获得超过110个赞
知道小有建树答主
回答量:91
采纳率:0%
帮助的人:36.8万
展开全部
主要是缓存问题,数据多了会卡,数据保存到文件或数据判断后丢弃,就是不要占用太大内存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式