请教关于LabVIEW与DSP串口通信的问题
我想用DSP2812做一块数据采集卡,采集卡发送一帧数据由4个字节组成,第一个字节定义为二进制常数0F0H,是每帧数据开始的标志,后面连续2个字节为数据字节,第4个字节为符号字节,该字节第八位为1,即1XXXXXXX则为负数,第八个字节为0即0XXXXXXX,则为正数,例如:0F0H 36H 87H 80H表示的数据是-36.87而0F0H 34H 62H 00H表示数据是34.62.请问我应该怎么在LabVIEW里面处理啊.另,我以前用VB做的时候是这样做的,先读取一个字节,判断其是否是0F0H,如果是,则接着连续读取三个字节,进行处理,如果不是则丢掉.现在刚学LabVIEW,不知道,在这里面是怎么做啊,请大家来指点,谢谢.
补贴:这是我试过了一个串口通信的程序,请大家指点
[ 本帖最后由 qu888 于 2007-10-14 22:20 编辑 ] visa serial vis,read 4 bytes data, sublenth of the read string,compare it,then get the afterward 3 bytes to proceed. 收到,谢谢版主了,准备要试一下的,不过我怕这样会有丢失字符的可能啊,因为最开始做串口通信时,我是一次只读一个字符的,刚开始还挺好的,可是过了一段时间后,就出现字符丢失的现象了,但后来把读取字节数换成是Bytes at Port的话,就没事了,(我的数据采集卡是一直在发信息的),版主能再给我指点一下吗,谢谢了
[ 本帖最后由 qu888 于 2007-10-14 00:10 编辑 ] 一直在发信息,最好是使用bytes at port,然后判断接收的数据字节数是多少,后面可以用case处理。如果是4字节,则进入处理即可。这样你测试下。 版主说的和我想了一样了,:lol ,今天早上就想到了问题,晚上试了一下,不过用是这样的一种方式,先读进一个字符进行判断,如果是真,则再读进三个字符进行处理,依次循环即可,接上数据采集卡试了一下,成功了,:victory:
不过对LabVIEW串口通信还是有一个疑问,就是我现在用的这个方法不过是一次while循环读了四个字符而已,但是就是不会出现丢失字符的现象了,而如果用一次循环读一个字符的方式却会在一段时间后就出现字符丢失的现象了.真是不明白它里面的函数是怎么运行的,这也许就是图形化语言和文本式的语言的区别之处吧,我用VB的时候可以一步步的来,可以清楚的知道当前发生了什么情况,不过LabVIEW专业化的控件太好用了,所以还是好好学学Labview吧,
另,对版主的热心帮助表示非常的感谢,我在研学和百思论坛上也问了同样的问题,都没有人回答我,在网上很少能遇见像版主这么负责的了, 先读进一个字符进行判断,如果是真,则再读进三个字符进行处理,依次循环.这样是常见的一个方式,尤其查阅中国期刊网或者万方数据库论文时,可以发现。
全部一次读出,判断字节数目,比较对应标识,再处理,也挺好的。用VISA做,可以结合队列的生产和消费者的模型结构实现,这是一种比较高级的编程思想。 谢谢赞同,大家都是同行,我们也希望国内的测控技术整体有更大的提高和发展,当前的朋友就是未来的技术支柱,希望大家都有所成就。
所谓”待到秋来九月八,我花开后百花杀。冲天香阵透长安,满城尽带黄金甲“了。
页:
[1]