很早就想做一个类似的东西了,正好这学期学了LabVIEW,作业就交了这个,基于LabVIEW的“串口示波器”上位机。
1.程序界面:
功能介绍:左边上方串口接收区,下方为串口字符发送区。右方为一个波形图表,在程序内部每次将串口发送过来的数据,以f%格式化,显示在波形图表上。
按钮介绍:从左至右依次,发送按钮;清除计数按钮;打开/关闭串口按钮;清除接收区数据;清除波形图表;保存波形;退出程序。
2.主程序框图:
主程序框图介绍:主程序框图主要由3个状态组成:程序的初始化,程序事件的响应,程序的退出。
状态Init:程序初始化,主要把OpenCom等按钮,串口状态,串口接收字符串,波形图标,TX/RX计数等控件,置为False或清零。初始化状态只执行一次,接下来就进入状态Event。
状态Event:程序事件响应,由一个事件结构构成,共需响应8个事件:Open/CloseCom按钮事件;串口号或波特率改变事件;发送按钮事件;清空计数按钮事件;清空接收区按钮事件;清空波形区按钮事件;保存波形按钮事件;菜单选择事件;退出按钮事件。如果在此状态,按下退出按钮,则进入状态Exit,否则程序将一直运行在此状态。
状态Exit:程序退出。退出前需关闭已打开的VISA句柄。
3.串口接收程序框图:
串口接收程序框图介绍:当串口状态为真时,调用串口属性节点”Bytes at Port”,如果串口缓冲区有X字节的数据就接收X字节的数据。最后,用一个状态机来实现相邻两个字符串的判断。如果串口在相邻两个字符串之间接收时间大于50ms,则判断为两个独立的字符串;如果小于50ms,则自动拼接前后两个字符串。