labview串口调试

2015-10-21 13:57:40来源: eefocus
其实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个整数。

关键字:labview  串口调试

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2015/1021/article_13611.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
labview
串口调试

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved