labview串口和单片机通信问题
两种都是整型的?我就以U8和U16的数据为例吧。它们分别为1字节和2字节,所以,你串口每次接收3个字节即可,然后用“从字符串还原”函数,按簇(结构体)的方式解释这三个个字符串。
图中的簇常量中的两个数值,第一个右键设置为U8类型,第二个右键设置为U16类型,为了显示其中的内容,故没有缩小成图标,实际使用的时候,为了节省程序框图空间,双击缩小它。
图中控件都是按十六进制显示方式显示,方便看其中数据的关系。数值的显示样式不影响其值的大小,LabVIEW是通过类似格式化写入字符串的方式在控件中显示数值的,希望你能领悟这句话。
“从字符串还原”函数还有“字节顺序”接线端,可以设置数据使用哪种字节序。比如我这里是使用默认的big-endian,网络字节序,按数字书写顺序着比较直观,后面的16位数解释成0x3456。如果设置成little-endian,Intel等CPU的字节序,从地址顺序看比较直观,低地址字节对应低位,后面的16位数解释成0x5634。
后面显示控件中的标签,是由确定函数输出数据类型的簇常量确定的,可以在后面按名称解除捆绑使用。如果需要显示这两条曲线,直接把这个簇连接到波形图表控件即可。
因为是单片机主动发数据,而不是LabVIEW要数据之后才发,所以有可能在串口一次发送的中途LabVIEW开始读数据,这里就需要考虑如何找数据的起始位置的问题了,这个可以用加同步头的方式解决,这里先不讨论。