您的位置 首页 开关

labview串口调试

其实labview传送的只是二进制的数,只是默认以ASCII码显示而已。除你楼主的方法,还有一种就是利用字符串到字节数组转换工具,将传送的数据

其实labview传送的仅仅二进制的数,仅仅默许以ASCII码显现罢了。除你楼主的办法,还有一种便是使用“字符串到字节数组转化东西”,将传送的数据按每8位,保存为一个数组元素。再用“索引数组”索引出需求的二进制数即可。

1.labview对串口进行调试时,首要需求装置visa驱动,可在NI的官方网站上下载,不过速度如同不是很快。
2.最简形式下进行串口程序接纳。如图:
然后在最右边接一个字符串承受区就能够承遭到串口发送的数据了。
留意:通过串口发送的是ascii码,因而假如单片机那儿发送的是比方0x20之类的数据,那么在承受端你用”Normal”形式将看不到任何东西,由于Normal是以ascii形式检查,而0x20的ascii表明空格,处理的办法为右键点击承受区(字符串指示器),然后挑选16进制形式便能够正常检查。
那假如要在单片机那么发送一个详细的数字,怎样才干正确的将这个数提取出来呢?这才是难点地点。
有种办法能够处理:在下位机(发送端)发送的便是表明该数的ascii码,比方你要发送12,那么就发送49,50(ascii比实践的数大48),因而在下位机专门写个函数将欲发送的数转化成ascii码就能够正常发送了。函数很简略,便是将其拆开然后加48。
此办法是专门用于labview,由于要从接纳到的字符串中提取数字就必须用这种办法,当然其他的软件,比方说VB之类的在这方面就简略一些,由于它能够在上位机对承遭到的ascii码进行处理复原。
3.得到字符串后,将有用的信息提取出来:
比方收到如下信息:
b0001b002b0003b0004b0005……
假如字符串是上述固定格局,能够scan from string 函数直接将数字提取出来,但我遇到的问题是上面的格局在每次发送的时分却不是固定的(串口都这样)
上述字符串有可能以如下方法收到
001b0002b0003b0004b0005b00……
此刻scan from string 就会报错,由于它发现第一个不是字母等等。
通过查找,发现Search/Split String函数能够处理这个问题,它能够把格局固定化,
比方我查找的字母为”b”,衔接输出端到match + rest of string 那么上述字符串
就会构成以b最初,然后由剩下的一切字符组成的序列,为
b0002b0003b0004b0005
然后就能够用scan from string 函数对上述字符串进行处理了。
如 format string为: b%4d ,就提取了b后边4个整数。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/214990.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部