LabVIEWwilliam hill官网
直播中

9年用户 124经验值
擅长:测量仪表 EMC/EMI设计 控制/MCU EDA/IC设计 MEMS/传感技术 MEMS/传感技术 测量仪表
私信 关注
[问答]

LabVIEW串口通信

    我用51单片机做了一个计数器,可以实现对外来脉冲的计数,并把计数值实时通过串口传给上位机labview动态显示,但有一些串口通信方面的问题想请教各位。
    我把编好的c代码烧写到单片机里,并通过u***转rs232串口线连接到电脑上,可以实现把计数值传输到pc机上,并通过串口调试助手实时显示出来,但是由于单片机一次只能传输8位数据即一个字节,而计数值可大可小,转换成二进制可能远大于8位,所以我把单片机计数值分成几个八位的数据分开来发送,如十进制计数值65535,对应的16进制数为FFFF,有16位,我通过串口分别把高八位和低八位传输给pc机显示,并编写了串口协议,分为帧头、数据、帧尾三部分,帧头有3字节,头两个字节为0xFF 0X55,第三个字节为传输有效计数值的字节长度,16进制数FFFF为两个字节,所以第三个字节为0x02,数据为第四个和第五个,即为需要传输计数值的高八位和低八位(即实际需要传输的计数值数据),0xFF 0xFF,帧尾为最后一位字节,是有效字节长度加高低八位(即第三个第四个第五个字节数的和)所得到数据的低八位为0x00,通过串口传送到pc机上,在串口调试助手上面显示为FF 55 02 FF FF 00,依次类推,当单片机计数值变化时,需要通过串口传输给pc机,那么如何用LabVIEW来编写串口程序并动态的显示当前的计数值?如何把单片机传过来的拆开的数据,重新整合起来?使用同样的协议显示计数值有效数值FFFF?可以用LabVIEW中的VISA实现吗?
    希望各位大神能帮忙指点迷津!谢谢!!

回帖(3)

h1654155270.8147

2015-6-23 22:51:52
为什么不把单片机采集的数据归一化成0~255之间只需要使用移位指令就可以了呀
举报

2015-6-24 09:14:25
引用: 茉莉花荼 发表于 2015-6-23 22:51
为什么不把单片机采集的数据归一化成0~255之间只需要使用移位指令就可以了呀

我就是把采集到的数据,拆开为8位的数据传输的呀,每8位数据就是0-255的数据呀!如果数据小于8位就不需要拆开,如果数据8-16位,就需要拆开为高低两个8位,如果数据16-24位,就需要拆开为高中低3个八位,以此类推。现在就是不知道怎么通过上位机LabVIEW来接受串口传来的数据,并把数据重新整合起来,转换为单片机的计数值。
举报

2015-6-24 16:12:05
怎么这个版块没人还是怎么的。。。发出去的东西就想沉入海底了一样,了无音信。。。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分