博客写作背景----项目中解决的问题
最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。为啥用labview呢,因为LabVIEW是美国国家仪器公司(NI)的创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于G语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。
下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。
(1)编程知识点–LabVIEW示波器
利用LIAT中的模拟采样函数库,通过Arduino Uno控制板上的模拟输入端口采集模拟信号,并上传至LabVIEW界面上显示波形,实现一个简易示波器的功能。
(2)硬件连接
将需测量信号的正负两端分别接至Arduino Uno控制板上的模拟输入端口和GND引脚上,并在软件上选择所连接的端口号。
(3)程序设计
本例修改自LabVIEW Interface for Arduino函数库中的示例,位于函数选板“函数”→"Ardu-ino"→"Example"→"Continuous Sampling Example",修改后的LabVIEW前面板和程序框图如图1和图2所示。
简易示波器需要在软件运行前设置Arduino Uno控制板的串口号、模拟输入引脚和采样速率(Hz),默认采样速率为1000Hz。
LabVIEW程序首先通过设置的串口号与Arduino Uno控制板建立连接,然后调用模拟采样函数库中的Continuous Acquisition On函数节点以设置的引脚和采样速率来实现连续采样,接着进入While循环并不断调用Continuous Acquisition Sample函数节点,并每次读取10个采样点送入波形显示控件。最后,断开与Arduino Uno控制板的连接。
在采样速率1000Hz的情况下,将Arduino Uno控制板上的3.3V、5V和GND分别接至模拟输入端口A0,得到如下的波形显示