visa linux 串口 通信,使用visa进行串口通信

最近因为项目的原因,都在研究上位机通信问题。这两个星期研究还是蛮多心得,下面就写写关于使用visa进行串口通信的内容

LABVIEW软件

LabVIEW 在仪器控制方面,还是很有优势的,把你仪器给你,读懂指令,然后估计半小时就可以编写好一个完整的仪器控制系统。从仪器配置到数据发送,数据接收,到数据生成报表。

如果使用其他语言,例如 VB,VC 之类的,写过仪器控制的同学来说,这个问题,写个界面, 就要写半天, 还得什么进制转换啊, 各种操作, 麻烦多了。 但是, 如果你采用 LabVIEW,这些问题,都是小儿科了。

LabVIEW 的 VISA 驱动

VISA,它是一种虚拟架构,让你不用关心底层,直接调用就好,而且不用管接口是什么类型的,它通吃。比如,你是 232 接口,用 VISA 吧,485 接口,用 VISA 吧

用过 VB 、VC 的,可能用 WINAPI 习惯了,其实既然有 VISA,而且也方便使用,我建议大家还是使用 VISA 吧。LabVIEW 的推出,本来就是为了让编程简单化,模块化,你如果用其他的 DLL 之类的,要涉及到底层的一些知识,要配置很多参数什么什么的。

LABVIEW串口编程原理

其实原理可以用一个过程描述:

拿打电话来说吧。

①,首先,拨对方号码,号码肯定要配置正确吧,不正确肯定达不到对方的, **VISA **配置串口相当于你给对方拨电话.

②,其次,给对方说要说的话,这个相当于 VISA 串口写。你说话,当然也也听对方说话,那就是 **VISA **串口读。

③,通话结束,要挂电话,挂电话相当于 关闭 VISA.

总结起来就是

拨电话→VISA **

串口配置讲电话→VISA **

读写(这里就是各种命令啦。)

挂电话→**VISA **关闭

其实串口很容易。难点在于你读到数据,怎么转化成自己需要的数据。而且保证数据无误。

LABVIEW的visa使用

事实上,真的只需要下面几个函数。

60da5b5d46ab?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

①配置串口

60da5b5d46ab?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

配置串口时候,最好是在对应的参数端口那里,右键,新建常量或者输入控件,然后再在新建出来的上面修改。因为,新建出来的数据类型,肯定是对的。

需要注意的是:

①停止位那里,不是常数 1 1.5 2 等,实际是 10,15,20 数值。这里最好右键新建常量然后选择对应的枚举类型,如上图所示。

更需要注意的是:②配置串口,顶端有个 启用终止符,一般默认是 真,终止符一般默认是 OA,即换行符。

那为什么配置 **VISA **要搞个终止符呢?

(注意:这个函数的终止符,只是接受的终止符,只是对 LabVIEW 接收而言,后面会具体讲。)终止符,是个条件,很多仪器上,也有终止符,而且终止符的优先级高。比如你要用”**VISA **读取“接收 1000 个字符,而还没接受完毕,收到了终止符 OA,那么程序就当一个命令结束了。后面的字符串,放入下一个命令里面去。对编程很方便的,如果你传输的字符不可能出现 OA 或者自己设定的终止符, 我建议用终止符来做终止条件, 这样,比你在 VISA 读去里读取固定的字节好 很多。

②bytes at port确定字节数

60da5b5d46ab?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

一般的组合,如上图所示。组合的前面,是 VISA 串口字节数,函数路径见上图,其实就是一个属性节点,看那个 bytes at port 英文就应该明白了。它利用一个读取缓冲区字节数,读到字节数,就确定了 VISA 读取里面那个字节数,然后用读取 VISA 读出来。意思就是,前面的先侦测下串口缓冲区有多少数据,侦测完了就告诉 VISA 读,VISA就全读出来。

这个组合的功能是,读取VISA串口已有的全部数据。

③visa的读取

60da5b5d46ab?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

以上程序,先配置串口,然后循环不停的读串口,用了读取串口字节判断该不该读,当串口有数据,即字节数不位零时,读取串口。

④字符串处理

1, 单个接受字符串就是数字形式。比如,收到的数据,就是 1,你要转成 1,很容易。直接用下面的函数来转为数值形式。

60da5b5d46ab?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

2,你接收到的是一串字符串:比如 01 02 03 04 05 .......

用截取字符串截取每一个数据,然后再参照第①种方式,转化成数值。

60da5b5d46ab?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

60da5b5d46ab?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

⑤调试经验

60da5b5d46ab?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

用读取串口字节数+VISA 读取

组合,可以防止上图错误发生,因为有数据就读,没数据就不读。而如果你指定要读的字节数,当超时时间到之后,如果还没读到指定直接,就会报错。

但是,我写过一个协议,是先发送一段字符,过几毫秒马上又发送结束符 0D,所以,前面数据刚读出来,就被后面的覆盖了,导致我每次都只能看到 0D,后来才知道,不是一起发的,是间断发的。用这种组合,不容易掌握字符串的字数。因为它有数据就读出来,所以,调试的时候,多小心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POJ 2398 Toy Storage

这道题和POJ 2318几乎是一样的。 区别就是输入中坐标不给排序了&#xff0c;_|| 输出变成了&#xff0c;有多少个区域中有t个点。 1 #include <cstdio>2 #include <cmath>3 #include <cstring>4 #include <algorithm>5 using namespace std;6 7 struct…

linux共享磁盘给指定ip,linux想挂载通过ipsan协议推送上来的磁盘,两个ip共分配了21个未分区的盘,...

先安装iSCSI initiator以及iscsiadmiscsiadm是基于命令行的iscsi管理工具&#xff0c;提供了对iscsi节点、会话、连接以及发现记录的操作。iscsiadm的使用说明可以查看/usr/share/doc/iscsi-initiator-utils-6.2.0.742/README&#xff0c;也可以运行man iscsiadm或iscsiadm --h…

【APICloud系列|1】华为应用市场 应用版权证书或代理证书怎么填

将apk上传到华为应用市场 首页提交的时候是没有问题的&#xff0c;但是第二次需要更新的时候发现多了一个必填的选项 我的应用被打回来啦&#xff0c;说明这个免责函需要要填写。今天公章还不在公司&#xff0c;还着急上线&#xff0c;不能准时上线就扣20%的工资。

【APICloud系列|2】上架安卓应用商店全套流程(小米应用商店、华为应用市场、阿里应用商店、百度手机助手、腾讯应用宝)

​​本次主要讲解前5个平台上架流程及注意事项(注册登录信息自行准备) 1. 腾讯应用宝:http://open.qq.com/ 2. 阿里应用商店(淘宝手机助手,UC应用商店,豌豆荚):http://open.uc.cn/ 3. 百度手机助手:http://app.baidu.com/ 4. 华为应用市场:http://developer.huaw…

socket阻塞与非阻塞,同步与异步、I/O模型

socket阻塞与非阻塞&#xff0c;同步与异步 1. 概念理解 在进行网络编程时&#xff0c;我们常常见到同步(Sync)/异步(Async)&#xff0c;阻塞(Block)/非阻塞(Unblock)四种调用方式&#xff1a;同步&#xff1a; 所谓同步&#xff0c;就是在发出一个功能调用时&#xff0c;…

linux基于域名的虚拟主机,Nginx虚拟主机应用——基于域名、IP、端口的虚拟主机...

Nginx支持的虚拟主机有三种●基于域名的虚拟主机●基于IP的虚拟主机●基于端口的虚拟主机每一种虚拟主机均可通过“server{}" 配置段实现各自的功能基于域名的虚拟主机实验环境1.基础源码包(无密码):https://pan.baidu.com/s/14WvcmNMC6CFX1SnjHxE7JQ2.CentOS 7版本Linux虚…

Mono for android,Xamarin点击事件的多种写法

&#xff08;一&#xff09;原本java的写法&#xff08;相信很多是学过java的&#xff09;&#xff1a; 需要实现接口View.IOnClickListener&#xff0c;最好也继承类&#xff1a;Activity&#xff0c;因为View.IOnClickListener接口又继承了IJavaObject, IDisposable接口&…

一句话木马绕过linux安全模式,一句话木马(webshell)是如何执行命令的

在很多的渗透过程中&#xff0c;渗透人员会上传一句话木马(简称webshell)到目前web服务目录继而提权获取系统权限&#xff0c;不论asp、php、jsp、aspx都是如此&#xff0c;那么一句话木马到底是如何执行的呢&#xff0c;下面我们就对webshell进行一个简单的分析。首先我们先看…

第六章 Qt布局管理器Layout

第六章 Qt布局管理器Layout 大家有没有发现一个现象&#xff0c;我们放置一个组件&#xff0c;给组件最原始的定位是给出这个控件的坐标和宽高值&#xff0c;这样Qt就知道这个组件的位置。当用户改变窗口的大小&#xff0c;组件还静静地呆在原来的位置&#xff0c;这有时候显然…

【APICloud系列|36】小米应用商店可以检测同个应用不同版本信息

在小米应用商店上架的信息 在其他应用商店上架的信息&#xff0c;比如应用宝 小米发过来的友好提示邮件&#xff1a;

【APICloud系列|35】小米应用商店版本更新

1.在小米应用商店后天重新上传一个更新加固已经签名的安装包。 链接地址&#xff1a;https://dev.mi.com 2.完善资料&#xff0c;只需要填写更新日志简单说明更新的缘由&#xff0c;再次选择相应的语言即可。原来的内容还是存在的。 3.提交审核就行。

Linux光盘检测,qpxtool

软件简介各位使用Linux系统的刻录发烧友有福了。不用再为了检测光碟品质而切换到Windows系统了。因为在Linux系统里也有支持光碟品质检测的软件&#xff01;它的名字是QPxTool。虽说05年底QPxTool就诞生了&#xff0c;但最近才被以rpm包的形式提供给Fedora用户。首先看下它的界…

存根类 测试代码 java_为旧版代码创建存根-测试技术6

存根类 测试代码 java任何阅读此博客的人都可能已经意识到&#xff0c;目前我正在开发一个项目&#xff0c;其中包含大量的旧代码&#xff0c;这些旧代码庞大&#xff0c;扩展且编写时从未进行过任何测试。 在使用此遗留代码时&#xff0c;有一个行为非常差的类非常普遍&#…

百度开发平台提交应用后进行官方认证审核失败?

昨晚收到一封来自百度的邮件 这里需要登录工业和信息化部查询后的ICP备案后的详细页面截图。&#xff08;其实也可以在备案的平台查询相关信息&#xff0c;我的是在阿里云备案的&#xff0c;所以直接去阿里云比较方便快捷&#xff09; 然后直接上传营业执照副本、ICP备案截图、…

linux字体如何删除不了,如何彻底替换Ubuntu下Chrome字体(清除楷体字)

刚刚升级到了Ubuntu 11.04,chrome也跟进到了11.0.696.57&#xff0c;让人纠结的依旧是Chrome内的字体&#xff0c;在首选项-->高级选项-->自定义字体并不能解决所有问题&#xff0c;还是有些网站看上去是令人纠结的楷体。在你的用户文件夹下(比如用户名为libai)选择显示所…

使用默认方法进行接口演化–第二部分:接口

引入了默认方法以启用接口演进。 如果向后兼容是不可替代的&#xff0c;则仅限于向接口添加新方法&#xff08;这是它们在JDK中的唯一用法&#xff09;。 但是&#xff0c;如果希望客户端更新其代码&#xff0c;则可以使用默认方法逐步演化接口而不会引起编译错误&#xff0c;从…

【APICloud系列|37】百度开放平台应用+,提升用户下载量操作步骤

进入百度应用开放平台后台&#xff0c;按图中步骤点击。 接入步骤 这个首先要准备和应用名称一致的百家号 链接地址&#xff1a; 进入官方号平台&#xff1a;http://gfh.baidu.com/ 填写官方的ID以及联系人的手机号即可&#xff0c;最后点击提交。

linux 命令 抛后台,Linux 后台执行命令

场景python 代码&#xff0c;打印1~3000&#xff0c;每秒打印一次## file_name: test.pyimport timei 0while 1:time.sleep(1)i i 1print(i)if i > 3000:break问题&#xff1a;直接在终端执行&#xff1a;python test.py, 需要在这个终端一直等&#xff0c;没法干别的事了…

【JSP】JSP与oracle数据库交互案例

************************************************************************ ****原文&#xff1a;blog.csdn.net/clark_xu 徐长亮的专栏 ************************************************************************ 本案例为咖啡销售情况录入查询系统 一、数据输入系统&…

【APICloud系列|34】上架华为应用市场缺少免责函?

针对华为应用市场&#xff0c;不管提交的是什么类型的应用&#xff0c;都应该提交免责函&#xff0c; 需要提前下载模板进行盖章后&#xff0c;转成图片上传。 免责函模板如下&#xff1a; 被拒绝的信息如下&#xff1a; 再次将免责函提交上去就没啥问题啦&#xff0c;因为其…