LabVIEW | 串口基础【自学】

news2024/12/30 2:09:59

转载 B站   up:不烧板子
地址:https://www.bilibili.com/read/cv9435378
原博图片不清楚,自己重新跟学截图自留,侵删

文章目录

  • 一、串口基础
    • 1.串口发送
      • (1)简单发送
      • (2)循环发送
      • (3)按键控制发送
    • 2.串口接收
      • (1)已知接收数据量
      • (2)未知接收数据量
  • 二、
    • 1.
    • 2.
  • 总结


一、串口基础

1.串口发送

  跟串口相关的函数都位于下图所示的位置。官方的帮助文档对每个函数有详细介绍,大家有不懂的地方首先查看帮助文档,配合搜索引擎深化理解。
在这里插入图片描述

(1)简单发送

  串口发送一次数据过程的可以分为三个步骤:打开串口–>发送数据–>关闭串口。分别对应Confugure Port,Write,Close这三个函数。用这三个函数在LabVIEW中搭建如下程序

在这里插入图片描述
  一个最简单的串口发送程序已经编写完毕,接下来用XCOM对我们的程序进行验证。

  首先用虚拟串口连接两个COM口(本文用COM2与COM3)
在这里插入图片描述
  在运行LabVIEW程序前,需要先在XCOM软件中打开串口,这样才能接收到数据。选择串口,并在发送缓冲区中填入“你好”,然后运行程序,可以看到在XCOM中收到了相同的文字。
在这里插入图片描述

  测试已经完成,回过头来看看编写的程序,看起来最复杂的好像就是“串口配置”这个函数了。不过虽然它有好多接线端,这里只接了一个,其它接线端不接时会有一个默认值,没有特别要求一般都不用修改。一般情况下关注两个接口即可,即“串口资源名称”跟“波特率”。关于波特率,大家暂时理解为数据的发送速度就好了,数据的接收方要以跟发送方相同的速度接收数据才可以接收到正确的数据。可以看到XCOM中选择的波特率是9600,而我们的程序中是没有设定的,因为LabVIEW中默认的波特率就是9600。如果我们要用到其它波特率,就需要对其进行更改,可以通过“创建常量”或“创建输入控件”的方式进行更改。如果没有特别说明,后面的演示中使用的波特率都是9600。

(2)循环发送

  接下来我们增加难度,让LabVIEW发送0、1、2、3……的数字,每隔1秒发送一次。 对程序做出如下修改:
在这里插入图片描述
  在原来的程序基础上添加while循环,并加入1000ms等待,让发送程序每隔1s执行一次。并且将循环次数发送出去,实现了刚才的需求。这里要注意串口写入函数接收的数据类型为字符串,而循环次数为一个数值,所以用到了“十进制数据至字符串转换”这个函数,该函数位于字符串选板“数值/字符串转化”中。还通过“连接字符串”在数据后面追加了回车和换行,让数据不会连在一起,方便我们查看。

  到这里我们貌似已经实现了刚才提出的要求,但其实还有一些不妥。我们思考一下,假如房间里有5个人要出去,顺序应该是 开门–>5人依次出去–>关门,而不是 开门–>出去1人–>关门 循环5次。发现问题了吧,打开串口、关闭串口的操作一直在循环执行!这两个步骤放在循环外面就好了,所以正确的程序应该是下面这样。
在这里插入图片描述

  结果如下:
在这里插入图片描述

(3)按键控制发送

  好,现在我的需求又变了,我想通过一个按键来控制什么时候发送数据,即我可以在文本框输好内容,然后按下发送按键,数据被发送出去。

  应该怎么办呢?我们可以添加一个事件结构,添加一个按键按下的事件,然后在事件中发送数据。最终完成的程序如下:

在这里插入图片描述
在这里插入图片描述
  运行结果如下:
  按 send 发送数据,按 stop 停止程序
在这里插入图片描述

2.串口接收

  参照串口发送的思路,串口接收一次数据的步骤为:打开串口–>接收数据–>关闭串口。但是这里有一个问题,数据的接收方是不知道数据会在什么时刻发送过来的,这是一个被动接收的过程。对应的有两种情况:

(1)已知接收数据量

  对于这种情况,处理起来比较简单,直接在读取函数处进行设置即可。图中所示为接收5字节数据的情况。
在这里插入图片描述

  接收结果如下:
在这里插入图片描述

(2)未知接收数据量

  既然不知道有多少数据,那创建一个while循环一直读取就好了。但是数据可能是断断续续传来的,而我们在进行读取的时候又必须得告诉读取函数需要接收数据的数量,这时候可以利用属性节点的方式获取串口缓冲区的数据数量,缓冲区有多少数据就读多少。读取函数的输出端显示的是本次读取的结果,所以当断续的数据传来,显示的结果每次都会刷新,而我们想看到的应该是每一次的结果累计,这里可以使用连接字符串的方式将字符串上一次的值与这一次的值累加起来并作为新的值进行显示。
在这里插入图片描述
  在获取到串口缓冲区的字节数之后,还进行了一个判断,当缓冲区不为空的时候再进行数据读取。
  上面这个程序,可以说是一个最简单的串口接收程序了,里面用到的函数组件都是进行串口数据接收所必不可少的。

  

注: “Bytes at Port” 这个串口的属性节点,在仪器I/O子面板下,如下图:
在这里插入图片描述
也可以在 VISA 资源线上右键 >> 创建 >> Instr类的属性 >> Serial Settings >> Number of Bytes at Serial Port,如下图所示:
在这里插入图片描述

二、

  内容

1.

2.

⚠️内容内容


总结

以上就是本文要讲的内容。

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

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

相关文章

第三方ipad电容笔哪个牌子好用?开学好用电容笔推荐

现在,市面上有很多种类型的电容笔,在选择的时候,我们很容易踩雷,比如,我们购买的一些产品在书写过程中,往往会出现断触,或者是防误触功能不起作用。所以我们买东西的时候必须要注意产品配置。对…

87. 扰乱字符串

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 解题思路: 对于给定的两个字符串S和T。 如果S和T的长度不相等,T肯定不是S的扰乱字符串。 如果S和T的长度相等,则可以在某一个随机下标处进行…

空时自适应处理用于机载雷达——波束空间空时自适应处理(Matla代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

[CFI-CTF 2018]powerPacked 题解

脱掉upx壳 逻辑很简单 str"EHK}kanqxgarqygtre" flag"" for i in str:flagchr(ord(i)-2) print(flag) CFI{i_love_powerpc}

ThreadLocal概述

一、概述 ThreadLocal被称为线程局部变量,用于在线程中保存数据。由于在ThreadLocal中保存的数据仅属于当前线程,所以该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。 ThreadLocal用于在同一个线程间,在不同的…

Prompt GPT推荐社区

大家好,我是荷逸,这次给大家带来的是我日常学习Prompt社区推荐 Snack Prompt 访问地址:http://snackprompt.com Snack Prompt是一个采用的Prompts诱导填空式的社区,它提供了一种简单的prompt修改方式,你只需要输入关…

​Spring Cloud Alibaba与Nacos版本对应关系​

下面是Spring Cloud Alibaba与Nacos版本对应关系 Spring Cloud Alibaba VersionNacos Version2021.0.1.0*1.4.22.2.7.RELEASE2.0.32.2.6.RELEASE1.4.22021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE1.4.12.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE1.3.32.…

curl请求https|http网站时出现Binary output can mess up your terminal

请求网站时出现​ 那么这里有几种情况 文件本身为二进制文件内容压缩 如果是第一种情况,那么直接保存你要下载的二进制文件,使用 curl https://a.com -o 文件名保存在一个文件中 或者使用 -o -直接输出在终端 curl https://a.com -o -如果你本来访问…

Nacos源码构建报错程序包不存在com.alibaba.nacos.consistency.entity

直接启动 Nacos.java 报错。 Nacos源码构建报错程序包不存在com.alibaba.nacos.consistency.entity 解决方案 执行 mvn compile。 原因 com.alibaba.nacos.consistency.entity包目录是由protobuf在编译时自动生成。可通过mvn compile来自动生成他们。如果使用的是IDEA&…

问道管理:A股连续两日放量上扬,分析称筹码充分交换后或趋势性上涨

利好加持下前一买卖日高开低走后,A股迎来全线暴升! 8月29日,三大指数均涨超1%,其间深证成指和创业板指更是涨逾2%,分别上行2.17%、2.82%。值得一提的是,商场上行中科创板股票全线迸发,科创50指…

供水管网安全运行监测,持续保障市民用水安全需求

供水管网是城市供水系统的核心组成部分,安全运行对人民的生活和社会发展至关重要。要持续不断地向城市供应数量充足、质量合格的水,应解决管道爆管问题、管网漏损导致严重的资源浪费等,及时发现管网故障,提高维护效率、降低损失&a…

【数据结构】初识树

目录 一,树的基本概念 1.1树的相关概念 1.2树的表示 二,二叉树的基本概念 2.1特殊的二叉树: 2.2二叉树的性质 2.3二叉树的存储结构 1. 顺序存储 2.链式存储 一,树的基本概念 树是一类重要的非线性数据结…

芯探科技--泛自动驾驶激光雷达解决方案

泛自动驾驶应用领域: 无人配送车 无人叉车 服务机器人 无人清扫车 …… 泛自动驾驶激光雷达解决方案介绍 在中低速移动过程中,类似无人配送车、无人叉车、服务型机器人、无人清扫车等具有自动驾驶功能的车辆,其需要对周围的环境进行探测,进而实现…

大数据Flink简介与架构剖析并搭建基础运行环境

文章目录 前言Flink 简介Flink 集群剖析Flink应用场景Flink基础运行环境搭建Docker安装docker-compose文件编写创建并运行容器访问Flink web界面 前言 前面我们分别介绍了大数据计算框架Hadoop与Spark,虽然他们有的有着良好的分布式文件系统和分布式计算引擎,有的有…

算法:分治思想处理快排递归以及快速选择/最小K个数问题

文章目录 算法原理实现思路典型例题颜色分类快速排序优化数组中最大的K个数最小的K个数 总结 算法原理 分治的原理就是分而治之,从原理上讲,就是把一个复杂的问题划分成子问题,再将子问题继续划分,直到可以解决 实现思路 基于分…

nvm 安装nodejs

1. 下载nvm 地址:Releases coreybutler/nvm-windows GitHub 2. 按要求一步步进行 3. 安装完成后配置nvm 的环境变量 找到nvm文件的路径,选中path,点击编辑讲nvm的路径放进去确定保存即可

RK3562 到底性能如何?安兔兔实测

RK3562采用四核A53Mali G52架构,主频2GHz,内置1T NPU算力以及13M ISP,拥有丰富的外围接口。其次在解码方面,支持H.264 1080P60fps、H.265 4K30fps;编码方面支持H.264 1080P60fps,此外还有高质量JPEG编解码。…

无涯教程-Android Intent Standard Actions函数

下表列出了各种重要的Android Intent标准操作。您可以查看Android官方文档以获取完整的操作列表- Sr.NoActivity Action Intent & Description1 ACTION_ALL_APPS 列出设备上所有可用的应用程序。 2 ACTION_ANSWER 处理来电。 3 ACTION_ATTACH_DATA 用于表示应将某些数据…

Python股票交易---均值回归

免责声明:本文提供的信息仅用于教育目的,不应被视为专业投资建议。在做出投资决策时进行自己的研究并谨慎行事非常重要。投资涉及风险,您做出的任何投资决定完全由您自己负责。 在本文中,您将了解什么是均值回归交易算法&#xff…

你的香港公司开始年审了吗?

小青是个SOHO,在19年找A注册的香港公司,一开始是想着有个自己的公司收款或者给客户做合同的时候不需要麻烦供应商,会相对方便一些。公司下来之后,每年年审的费用也就上千块,还不算太高。 一开始做年审,都是…