labview串口数据解析

发布者:a407895356最新更新时间:2020-03-15 来源: elecfans关键字:labview  串口  数据解析 手机看文章 扫描二维码
随时随地手机看文章

一、LabviewRS232串口通信数据格式问题解析

1)最近在开发一款Labview串口通信软件,功能是实现PC与sony摄像机云台的数据通信。主要是通过PC发送16进制指令控制云台的转动,方便做一些测试。


遇到的问题:一开始没注意格式问题,只是纯粹的将16进制数据放入VISAWRITE函数的写入缓冲区。但是忽略了一个问题,就是Labview软件中的程序无论是接收还是发送数据都是字符串的格式,所以遇到其他格式通信的时候需要做相关转换操作


如果这些数据是静态的,也就说在程序设计阶段要传输的数据就已经确定了,在这种情况下,首先设置VISAWrite的writebuffer的显示属性为HexDisplay,然后直接输入要发送的16进制字符串就可以了。串口设备的控制命令通常是由一个或多个16进制字符组成的,当我们需要对其进行控制时经常会采用这种方法发送控制命令。


2)使用LabVIEW发送数据

还有一个问题是使用LabVIEW发送数据的问题

①如果下位机接收的是字符串数据类型的话,直接用VISA写入对应的字符串就行了,现在的仪器一般都是接收字符串的,所以可以直接使用VISA发送而不需要转换。


②如果下位机接收的是数值型数据的话,就需要转换一下,其中数值型又是十进制和十六进制二种用得比较多,这二种数据间相互转换一下就行了,其实是一样的。


由于在LabVIEW中字符串直接有十六进制的显示方式,所以发送十六进制的数据比较方便,比如要发送十六进制数值类型的“0xAF”,那么在VISAWrite的写入缓冲区字符串常量上右键》》十六进制显示,直接输入“AF”即可,那么下位机接收到的就是正确的数据(十六进制数值类型)了。


二、在LabVIEW中使用串口

1、串口VI介绍

LabVIEW的串口通讯VI位于InstrumentI/OPlatte的Serial中,包括:

labview串口数据解析

2、使用说明

在LabVIEW环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下。

labview串口数据解析

图1、串口操作数据流图


首先需要调用VISAConfigureSerialPort完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等。

labview串口数据解析

图2、初始化串口


如果初始化没有问题,就可以使用这个串口进行数据收发。发送数据使用VISAWrite,接收数据使用VISARead。在接收数据之前需要使用VISABytesatSerialPort查询当前串口接收缓冲区中的数据字节数,如果VISARead要读取的字节数大于缓冲区中的数据字节数,VISARead操作将一直等待,直至TImeout或者缓冲区中的数据字节数达到要求的字节数。当然也可以分批读取接收缓冲区或者只从中读取一定字节的数据。

labview串口数据解析

图3、从串口发送数据

labview串口数据解析

图4、从串口接收数据


在某些特殊情况下,需要设置串口接收/发送缓冲区的大小,此时可以使用VISASeTI/OBufferSize;而使用VISAFlushI/OBuffer则可以清空接收与发送缓冲区。在串口使用结束后,使用VISAClose结束与VISAresourcename指定的串口之间的会话。

labview串口数据解析

关键字:labview  串口  数据解析 引用地址:labview串口数据解析

上一篇:labview串口接收数据_labview串口被动接收数据
下一篇:labview读取串口数据

推荐阅读最新更新时间:2024-11-13 05:43

stm32串口首次发送数据丢失
查阅stm32f10X参考手册 : TC:发送完成 当包含有数据的一帧发送完成后,由硬件将该位置位。如果USART_CR1中的TCIE为1,则产生中断。由软件序列清除该位(先读USART_SR,然后写入USART_DR)。TC位 也可以通过写入0来清除,只有在多缓存通讯中才推荐这种清除程序。 而硬件复位后,串口发送的首个数据之前没有read SR的操作,是直接write DR,也就是说,TC没有被清除掉。 所以在发送数据指令之前加上USART_ClearFlag(USART2,USART_FLAG_TC);或者USART_GetFlagStatus(USART2, USART_FLAG_TC);指令,先读取一下USAR
[单片机]
stm32快速学习5——串口中断接收
串口自发自收 设定串口时钟 设定引脚功能 中断优先级 设定串口 Main文件 #include stm32f10x.h void RCC_Configuration(void); void GPIO_Configuration(void); void USART_Configuration(void); void NVIC_Configuration(void); int main(void) { RCC_Configuration(); GPIO_Configuration(); NVIC_Configuration(); USART_Configuration();
[单片机]
STM32串口中断接收和中断发送
先贴出中断函数: void USART1_IRQHandler(void){ if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { USART_ClearITPendingBit(USART1, USART_IT_RXNE); USART1_Buffer =USART_ReceiveData(USART1); //USART1_Buffesh是一个自己定义的接收数组 if(i 3){ SendFlag = 1; } } if(USAR
[单片机]
NI产品为桥梁健康把脉
Author(s): Bernard Basile - Advitam, Inc. Industry: Process Industries Products: PXI/CompactPCI, The Challenge: 开发出结构监测系统,测量和确定Rion-Antirion大桥在正常工作下、大风作用下和地震情况时的状态。 The Solution: 应用PAC 对东海大桥以及Rion-Antirion 大桥进行结构监测 "近年来,NI产品在桥梁结构监测领域有越来越多的应用。本文选取了我国东海大桥和希腊Rion-Antirion大桥的案例,以点代面地展现了NI 产品在桥梁结构监测中的应用。" 近年来,NI产品在
[测试测量]
NI产品为桥梁健康把脉
STC89C52系列单片机内部资源——串口通信
计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换 。可以分为两大类:并行通信与串行通信。 并行通信通常是将数据字节的各位用多条数据线同时进行传送 。 并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。 串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。 串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。 串行通信的基本概念 一、异步通信与同步通信 1、异步通信 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调
[单片机]
STC89C52系列单片机内部资源——<font color='red'>串口</font>通信
LabVIEW中将字符串转换成ASCII码
因为任何数据采集后都希望能做出图表来,在LabVIEW里写了一个串口的程序,无奈输出的是字符串,而作图的输入数据必须要是数值类型,找遍了控件也没看见将字符串转换成相应ASCII码的控件。于是上网搜索,真是众说纷纭,很多人说用十六进制数字符串转换成数值的控件,也有人说用扫描字符串的控件,本人也是初学,发现这两种方法并不能实现我的目标。 虽然我的字符串输入控件选择的是显示16进制数,但数据流实际上记录的是该字符串的ASCII码。所谓将十六进制数字符串转换为数值,其实是指正常显示时显示为16进制数。举个例子,ASCII码的0x31,对应于字符 1 ,如果输入0x31即 1 ,则用上述控件就会将该字符串转换为0x01。
[测试测量]
Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出
摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的。printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使之完成串口单字符发送工作即可。 注: 本文方法性内容主要来自《Keil MDK环境下使用printf函数的解决方法》与《STM32串口使用Printf()函数问题》。除使用c标准库外,还可以使用keil mdk提供的microLib,在STM32串口使用Printf()函数问题》一文有介绍,另外,该文同时也提到如果使用c标准库函数,则要避免链接使用半主机模式的函数,retarge.c文件中的#pragma import(__use
[单片机]
UART学习笔记
串口(UART) DIV_VAL = (PCLK / (bps x 16 ) ) −1 35 = 115200/66.5/16-1 查看芯片手册: GPACON 0x7F008000 R/W Port A Configuration Register 0x0000 GPA0 0000 = Input 0001 = Output 0010 = UART RXD 0011 = Reserved 0100 = Reserved 0101 = Reserved 0110 = Reserved 0111 = External Interrupt Group 1 0000 GPA1 0000 =
[单片机]
小广播
最新测试测量文章
换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved