labview从串口接收字符串,并截取为不同长度数组问题。

来自:    更新日期:早些时候
labview从串口接收字符串,并截取为不同长度数组问题。~

最简单的做法(如果你下位机不会发其它的数据,只会每隔40ms发一次23字节的命令),
那你读取串口的时候,设置读取长度为23字节,然后写个子程序,用以分析这23字节长的字符串,子程序就是用三个截取字符串函数,就可以分离出来了

首先确定收端和发端的波特率,数据位,校验等参数一致,串口的波特率最小的一般为9600。其次不需要使用事件结构吧,你利用串口字节数来判断是否有数据,根据字节数大小来读取相应长度的字节,肯定没有问题的。你这个速度并不快,没必要单独处理,如果非要单独处理的话,就用队列。见图片

如果帮助到你了,望采纳!

最简单的做法(如果你下位机不会发其它的数据,只会每隔40ms发一次23字节的命令),
那你读取串口的时候,设置读取长度为23字节,然后写个子程序,用以分析这23字节长的字符串,子程序就是用三个截取字符串函数,就可以分离出来了

字符串函数里面有截取字符串vi,直接调用设置从第几位截取,截取几位就可以了,没办法插入图片,希望能帮助你。

用“字符串截取”,分别按照3、16、2、2的大小进行截取,将结果直接连接至数组

下位机一开始是要发送几个无用的测试数据的,长度不一定 。
那就一个循环读串口,没次循环读取串口上的所有字节,然后字符串转u8数组,用for循环将u8数组进队列;另外一个循环元素出队列,判断是否为数据头的第一位,若是继续判断下一个元素是否为第二位,。。第三位;如果这位都符合条件,则用for循环再元素出队列20次,这样出来的23个字节就是你要的,后面就一样了,分析这23个字节


labview从串口接收字符串,并截取为不同长度数组问题。视频

相关评论:
  • 18093388947labview 分两次写入串口不同的内容 串口只能收到第一次发送的内容请问是...
    羿郊怖串口通信只能接受字符串数据格式。 在用labview进行发送数据的时候会闪出一种观点就是:labview发送出去的数据都是拆成ASCII形式。譬如:想发送“BADEC0DE”,使用串口助手可能接受到得就是42 41 44 45 43 30 44 45(十六进制)。可是希望发送的是0 ...

  • 18093388947labview 把串口收到的0~100 的值用 波形显示
    羿郊怖Labview串口接收数据显示波形图原因是:16进制转10进制就这么算会出问题的,如果y1是A-F呢,要用转换的函数,直接将16进制的字符串转换成10进制的数。LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是...

  • 18093388947labview 串口 维持接收到的数据
    羿郊怖看不见全部的程序,不过应该是你串口的在不断的读取(即使读取0字节也是读取,会输出空字符串)把原来的字符串显示控件的内容给覆盖了。你可以这样把读串口和显示控件都放在条件分支结构中。另一个分支是0,里面只用把visa资源的线连过去,别的什么都不用放。这样你的串口就只有在有数据来的时候才会...

  • 18093388947labview串口怎么接收16位数据?
    羿郊怖两个办法:直接使用LabVIEW“整数拼接”,位于“编程 -> 数值 -> 数据操作 -> 整数拼接”高8位乘以十六进制的100(即十进制的256),加上低8位即可

  • 18093388947在labview串口接收数据时,怎么可以使它一直接受下位机发送过来的数据...
    羿郊怖就是一直读串口,用while循环,优利德的很多款程控仪表都是这样子单向不停的发给上位机

  • 18093388947labvIEW串口通信读取字节数问题
    羿郊怖串口操作(读写)建议加延时 可以把“串口字节数”连接到“VISA读”的那个接口上,对读取出来的字符串做处理应该简单一些吧,字符串显示格式修改为16进制或者字符串转字节数组可能更直观。循环外面的那个“VISA打开”应该没必要

  • 18093388947labview中 我现在在做一个上位机对串口的发送 ASCII码和十六位进制的...
    羿郊怖你的意思我大概清楚了。这么给你解释下吧:且不管你的老师说的是什么,首先,在LabVIEW里,不管你的上位机发送的具体内容是什么,其给串口的指令对于LabVIEW来说都应是字符。比如你要发的是字符“a”,那么发送的就是“a”;如果你要发送数字“15”,则LabVIEW实际能发送的是ASCII码为15的那个字符。...

  • 18093388947请问labview如何设置串口通信协议的?
    羿郊怖我不知道你下位机用的是什么,但是,肯定是以下几步了:1.Labview发不同的指令给下位机;2.下位机收到指令,执行对应的命令,控制泵的流量。所以,归结其来,就是labview通过串口给下位机发送数据。设置通信协议可用“VISA配置串口”来设置通信协议,其他的串口读写也用VISA里面的模块。我给你传个图...

  • 18093388947用labview(上位机)和单片机(下位机)串口通信发送指令给单片机
    羿郊怖开始使用VISA之前,应确保选择合适的仪器控制方法。GPIB、串口、USB、以太网和某些VXI仪器使用基于消息的通信方式。对基于消息的仪器进行编程,使用的是高层的ASCII字符串。仪器使用本地处理器解析命令字符串,设置合适的寄存器位,进行用户期望的操作。SCPI(可编程仪器标准命令)是用于仪器编程的ASCII命令字符...

  • 18093388947求助!labview8.2串口发送问题!请高手帮助!谢谢!
    羿郊怖是不是你用labVIEW串口发送的是字符串的‘19’啊?串口写入这个模块支持两中输入的数据类型,分别是字符串和U8的数组。输入的字符串是自动转换成U8(字符串的ASC码)的形势发送的。也需要直接发送U8类型的数组,如何要发送单字节则数组长度为1。而接收的应该也是字符串形式的,需要转换成U8的数据类型!...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网