labview串口中断接收数据读取数据,但是每次都只能读15个字节,再读一次就可以把剩余字节全部读出(没有字节数限制)?

通过单片机对将传感器采集得到的数据进行一定处理后,再经串口发送回计算机,利用虚拟仪器的底层函数特性结合计算机的RS232串口的应用特性,对串口的接收信息,在计算机上显示出当前采集到的相关数据,并利用虚拟仪器显示在一定时间范围内的采集信号的趋势图,并以文档文件保存一定时间间隔的采集信息的技术,并通过温度采集信号数据调试成功。实现了基于虚拟仪器的计算机RS232串口与单片机之间信息的传送的技术。 作为虚拟仪器开发平台的LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)软件因其具有直观简便的编程方式、敏捷的显示特性、广泛的兼容性等一系列优点在新兴电子仪器的设计和信息传送、接收等领域得到了越来越广泛的应用。例如利用串口RS232接口可实现电脑与单片机之间的信息的交互,因而在基于单片机的测控领域中,虚拟仪器技术的利用也得到了极大的发展,削减了传统测量技术在硬件设备上的投资o本文在对LabVIEW的VISA与单片机之间信息传送的理论研究基础上,针对串口发送的数据信息,设计了基于LabVIEW对串口送入的信息的接收、保存并显示等的处理。 1串口通信建模 将计算机的串口数据连接到计算机的接收线,利用LabVIEW软件特性将数据接收到计算机。串口通信线的连接时将2接收线与3脚发送线在两通信端交差相连。 图1设计方框图 如图1所示为LabVIEW设计方框图。设置VISA串口相关参数主要对VISA配置串口中的波特率、数据比特、奇偶和流掌握等的设置(本文中设定值分别为典型值9600、8、0、1.0)。 通信设置主要针对与单片机之前的信息交流前的预备工作:比如向单片机发送一字符或字符串时,单片机得到对应代码,把采集到的数据通过串口发送计算机。 信息的读取主要对当前的从串口中返回计算机的相关信息的后期处理:为了便利于不熟识计算机操作的用户,应用LabVIEW读写文件的便利,指定在运行LabVIEW文件的当前文件夹。用户可直接打开“数据保存.txt”,即可查询历史时间的数据。显示信息可以是对收到的瞬时信息显示出来;其他附属功能涉及在特定环境下的功能需求,例如报警提示,以及波形方式显示在一定时间或空间范内的数据波动特点等。 2程序设计框图 2.1程序板图 图2第l帧程序图 图2为第l帧的程序图:图中为顺序结构中,一部分通过对VISA向串口发出指令:指令的内容要与单片机商定全都:如发送0x32时,单片机向串口送出温度数据的采集结果,另一部分与写对提示保存时间的提取做预备工作。 图3第2帧程序图 第2帧程序方框如图3所示。通过对接收到的数据按一组字符串进行处理,进行字符串长度的识别,对每一个元素进行索引取出分别进行处理,组成一维数组,再转换成字符输出。保存文件时通过对“创建路径”的特别应用,结合通过“打开/创建/替换文件”和“设置文件位置”控件的应用,在运行程序时自动新建并保存或连续保存在“数据保存.txt”文件中。将开始执行的时刻起,对所得到的数据用趋势图显示出来。设计在串口每次获得的字符串转为数值的方法采用“分数/指数字符串至数值转换”控件就可实现,再将这些数据组建成数组,用波形图显示,波形显示的横坐标为了体现详细的时间,采用定义坐标法实现。当vI停止运行后,缓冲区中的数据仍存在,对横坐标时间进行合适的自定义,就可实现更长时间段的趋势图的显示。 2.2运行结果显示 在本测试过程中,发送“0x32”得到温度的相关采集据,当手接触温度传感器18820在短时间内温度产生的变化状况用趋势图显示:在2011.9.1920:58:38开始到2011.9.1921:02:48测试数据趋势图如图4所示。对应保存的TXT文件截图如图5所示。 图4测试数据趋势图 图5保存的TXT文件截图 图4中,设定在温度lO·32摄氏度以外发生警告,测试结果完成了设计预期。 3结束语 本文利用计算机的$232串口实现LabVlEW软件与单片机实现的信息传送,通过单片机的传感器采集到的信息进行初步识别、处理,将结果通过串口返回计算机,利用LabⅥEW的VISA特性接收串口信号,显示当前数据、在一定时间内的波形趋势图并以文本文件的形式进行保存。以此方法能对电压、压力、湿度等物理量的传感器的采集数据实现测试与保存。在这一过程中,利用LabVIEw的优势,在显示和存贮等方面功能,可以大大削减单片机的硬件电路和软件设计,在一定程度上缓解了单片机在

利用DSP采集16字节的数据数据通过串口发送给labview,波特率115200,在串口调试助手上长时间运行接收的数据都没有问题,但发送到labview里会周期性的出现数据错位/丢失的情况,请问是什么问题?附上labview程序,本人labview新手,谢谢指导。


图上那几个尖峰和低谷就是数据错位,同一时刻只有最后几个字节的数据会错位,错位会周期性发生,发送到串口调试助手的话就没有这个问题


相对于你目前的架构,串口传输速率太快。可以降低串口速率去验证。


扫二维码下载贴吧客户端

我要回帖

更多关于 labview串口中断接收数据 的文章

 

随机推荐