1 LabVIEW版本
使用版本为2018版,使用硬件接口需安装VISA驱动
2 需要实现的功能
设计程序,将串口接收的指定帧头帧尾的数据接收,并提取有效数据位,将数据转为电压值实时显示,并可保存为文本文件。
数据帧格式:
3 界面设计
左边是一个接受开关,以及串口的一些设置,左下方是保存路径选择及保存按钮。中间上方实时显示单次接收的数据,为一维数组,下方是累计接收的数据。为二维数组。界面右侧实时显示数据计算出的电压值。
4 程序设计
4.1 串口设置
首先设置串口,器件:仪器IO-串口-VISA配置串口,添加串口号、波特率等不多说。
之后创建一个while循环,把串口关闭放在循环外,其他程序都写在while循环内,循环的条件是串口开关控件ON
注意:在while中需要加入延时,给程序处理时间,否则会乱码。延时时间视情况而定。
在串口配置后需要添加一个VISA属性节点,具体原因俺也不知道。之后创建一个判断条件,VISA属性节点字节输出不为0,即接收到数据时触发“真”,进行之后的读取与处理。之后是一个串口读取器件。
4.2 接收实时显示
使用字符串转字节数组,创建显示控件,可显示单次接收到的数据帧。通过创建数据,添加反馈回路可以创建二维数组显示总接受数据帧。
4.3 有效数据帧判断
有效数据帧的帧头和帧尾都是固定的,使用数组索引对一维数据进行元素查询,我收到的数据帧格式为0x55 0xAA 0xXX 0xXX 0x55 ,故使用多输入与器件对数组的第0,1,4个元素进行判断,若全部相等,则说明接收到完整数据帧。
注意:图中55 AA 55为16进制显示。
4.4 计算,实时显示电压值
把数据位的高八位乘以256再加上第八位得到AD采样值,使用的是12位AD故除以2的12次方再乘以参考电压3.3V得到测量电压。这一部分跟好懂,不阐述
4.5 创建,保存文本文件
5 测试
使用虚拟串口创建一堆串口,设置好串口参数,勾选16进制发送。没毛病。
注意:两个数组显示控件都设置为十六进制显示
6 结尾
运行前需打开开关控件,运行的时候别关开关控件。我是菜鸡,程序有bug正常,源码很简单,第一次发帖大家骂轻点。