labvIEW串口通信读取字节数问题

串口每一帧数据有18个字节,有时候会有一个字节的错误数据,怎么样才能只读取正确的数据,而将错误的数据送到另一个字符串显示空间,我想通过自己数来判断,如果字节数是18,则为... 串口每一帧数据有18个字节,有时候会有一个字节的错误数据,怎么样才能只读取正确的数据,而将错误的数据送到另一个字符串显示空间,我想通过自己数来判断,如果字节数是18,则为正确数据,读取,如果不为18,则为错误数据,送到另一个字符串显示控件,我做了如下图的VI,但每次都只能读18个字节数,而串口的实时字节数读不出来,求高手指教啊
分离正确和错误数据
展开
 我来答
匿名用户
2013-12-10
展开全部
  1. 串口操作(读写)建议加延时

  2. 可以把“串口字节数”连接到“VISA读”的那个接口上,对读取出来的字符串做处理应该简单一些吧,字符串显示格式修改为16进制或者字符串转字节数组可能更直观。

  3. 循环外面的那个“VISA打开”应该没必要

更多追问追答
追问
谢谢你的回答 不过不能解决我的问题啊
追答
第2点已经说得很直接了,串口有多少数据读多少数据,对读取出来的字符串做判断。你那么写就是非得读到36字节才结束,或者等待超时。确定下你的单片机没有问题,先不要用labview做,找个串口助手试试!!!
wcv_xyz
2013-12-10 · TA获得超过2577个赞
知道大有可为答主
回答量:6507
采纳率:59%
帮助的人:2360万
展开全部
如果每一帧之间没有间隔时间,那么每一帧的数据应该具有特定的结构,使用移位寄存器来寻找特定结构
如果每一帧之间有一定的间隔时间,设置串口超时,串口读取字节数设为19

如果都不是,一定是我看错了
追问
是的,每一帧数据前5个字节都是固定的  要怎么弄啊  每一帧之间时间间隔不定
追答
参考逻辑是:每次循环仅接收1个字符并连接字符串,同时检测里面是否出现了flag
检测到falg则允许将flag之前的数据(13/14个字节)输出,然后将移位寄存器置空
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匡双太史丝
2019-07-26 · TA获得超过3631个赞
知道大有可为答主
回答量:3065
采纳率:34%
帮助的人:465万
展开全部
参考逻辑是:
每次循环仅接收1个字符并连接字符串,同时检测里面是否出现了flag
检测到falg则允许将flag之前的数据(13/14个字节)输出,然后将移位寄存器置空。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式