图1 程序配置
利用单片机或者FPGA等等设备利用串口向Labview传输数据。设计的初衷是这样的:假如我利用单片机制作了一个温度显示代码(举例)。从单片机I/O口输出的每个数据(二进制数据)都代表一个温度(用十进制显示就是温度的值),数据发送给Labview后,让Labview将二进制转化为十进制从而显示数值,甚至可以做成一个波形图表以观测温度的变化。
我说一下主要的部分:我利用FPGA写了一个代码:按下按键发送0xE3,然后传送给labview验证一下labview程序的可行性。
FPGA模块
当我按下按键,FPGA向LAbview发送0xE3,Labview会以字符串的形式接收(正常显示以ASCII码形式显示),然后在读取缓冲区中显示E3(以16进制显示),我多次点击它会发送多个数据。
图2 Labview显示的数据
怎样把缓冲区的字符串变为十进制数呢?用到字符串至字节数转换这个函数,这样就可以把字符串转为十进制显示,转换为数值格式后,需要一个数组索引,假如我收到5组8bit数据,对于温度的测量我没必要全都转换为十进制,为节省资源,我只要第3组的就行(假如我发送的是EE与FF与DD与11与22,我只要DD就行),因此索引处填写2(从第0个数开始),意思是我只要这一次发送过来的数据的第三个数,如图3所示。
图3
为了验证程序的正确性,使用串口助手向labview发送5组8bit的数据,此时需要借助虚拟串口进行连接。使用串口助手发送EE与FF与DD与11与22,则labview接收到的是DD,经转化后显示221,同时会显示在波形图表中,如图4所示:
图4 串口助手界面
labview显示面板
以这样的形式每次发5组数据我只要中间的一组,数据显示的就是温度的值,同时可以在波形图标中看到温度的变化范围。在这基础上,可以加个布尔灯,每次超过40摄氏度,小灯亮,提供报警,后面的程序可以自己编写,以上仅仅提供了一个串口发送与接收的参考。