labview串口连续接收数据中如何把串口接收到的数据存到一个8X8的矩阵中

labview串口连续接收数据串口实例大全希望可以帮到想学习的朋友。
将VISA resource name指定的串口接收缓冲区中的数据读取指定字节 数的数据到计算机内存中
在labview串口连续接收数据环境中使用串口与在其它开发环境中开发过程类似基本的流程框图如下

Serial Port完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等


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

VISA是应用于仪器编程的标准I/0应用程序接口是工业界通用的仪器驱动器标准API(应用程序接口),采用面向对象编程具有很好的兼容性、扩展性和独立性。用户可用一个API控制包括VXI、GPIB及串口仪器在内的不同种类的仪器它还支持多平台工作、多接口控制,是一个多类型的函数库

在labview串口连续接收数据中编写的VISA接口程序,当外部设备变更时只需要更换几个程序模块即可使用,简单方便而且开发效率高

在labview串口连续接收数据 中利用VISA节点进行串行通信編程。为了方便用户使用labview串口连续接收数据将这些VISA节点单独组成一个子模块,共包含8个节点分别实现初始化串口、串口写、串口读、Φ断以及关闭串口等功能。

在labview串口连续接收数据 中进行串口通信的基本步骤分为3步:

第一:串口初始化,利用ⅥSA Configure Serial Port.vi节点设定串口的端口号、波特率、停止位、校验位、数据位

第三:关闭串口,停止所有读写操作

下面介绍一下VISA串口的主要节点及其功能:

该节点主要用于串ロ的初始化,如图1所示

VISA资源名称:指PC的串口名,例:COMlCOM2等。

波特率:串口速率默认为9600bps。

数据比特:一帧信息中的位数labview串口连续接收數据 中允许5~8位数据,默认为8

奇偶:奇偶校验位,可选为无校验、奇校验或偶校验默认为无校验。

停止位:一帧信息中的停止位的位數可选为1位、1.5位或2位。

流控制:设置传输机制使用的控制类型可选为None、XON/XOFF软件流控或RTS/CTS硬件流控,默认为None

终止符:设置一帧数据嘚结束符,即当接收串口数据时当收到终止符时,软件自动结束一帧数据接

该节点主要用于写入串口数据,如图2所示

写入缓冲区:串口发送的内容。

该节点主要用于读取串口中的数据如图3所示。

字节总数:要读取的字节数量

读取缓冲区:PC串口收到的数据。

返回數:实际读取的字节数字节总数应大于或等于返回数,否则会丢数

该节点主要用于关闭已打开的串口,释放串口资源以便串口被其怹程序所调用,如图4所示

按照串口编程的3个基本步骤,图5和图6给出了两个典型的串口读写程序框图图5为读取的字节数为固定值,图中為4个字节如果串口中数据字节数目不等于4个字节则会出错。图6则是先判断出串口中数据的字节数目然后将其全部读取出来。相对而言图6的通用性更好,但是出错的概率也会增大因为不知道串口发来的数据是否与我们所需要的数据的字节数相等。

图5 典型串口读写程序框图1

图6 典型串口读写程序框图2

加载中请稍候......

}

数据的应用当然,使用其他

       在DIY各种小玩意儿的时候通常情况下会考虑将数据传输进电脑进行处理(eg:智能小车采集到的跑道信息、各种分布式

的状态信息等)。但是MCU的串口传输的数据通常情况下都是十六进制字符串格式上位机接收到之后需要将各种信息分离提取之后才能根据数据进行相应的操作。在數据比较单一并且传输速率较慢的时候,可以不考虑串口通信数据错位及丢包的问题直接将接收到的数据进行处理即可,但是当数据量比较大并且传输速率较高的时候,串口传输的丢包现象就比较明显导致的结果就是数据错位无法正确获得想要的信息。

这时后续提取数据时就会出现由于数据位不对而产生的各种问题一种简单有效的方法是给要传输的数据加上校验用的头和尾,如“AABB A1E5 6E03 80A1 E56E 0780 CCDD”,其中AABB  CCDD就是主动加进去的头和尾其本身并不包含任何意义,只是用来提取数据位上位机接收到之后,直接匹配AABB和CCDD二者之间的数据就是有效数据,另外为了防止出现数据丢包可以强制校验二者之间的间隔,当二者之间的数据长度与设定传输的数据长度一致时才认为数据有效

       下图所礻,这里现将字符串转换成了字节数组图中AA对应170,BB对应187CC对应204,DD对应221按照上面的方法,匹配数组中的170、187、204、221之后校验187及204之间的数组長度确定为10才认为数据有效,并进而将对应数组元素做相应处理

}

我要回帖

更多关于 labview串口连续接收数据 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信