打印
[求助讨论]

关于labview和单片机的通讯程序,请进

[复制链接]
4075|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我做了个labview采集单片机的串口,结果单片机采集的数据没有错,但是发到labview这里就变成高低位倒过来了,或是少收了一个数一样。
这里配上程序给大家帮忙参考下。。烦死。我用虚拟串口这些,局部的测试都没问题的。。

相关帖子

沙发
songchenping| | 2017-1-17 10:26 | 只看该作者
可以把你的LABVIEW程序附上,让我看看有什么问题没有

使用特权

评论回复
板凳
songchenping| | 2017-1-17 10:26 | 只看该作者
截图看不出来的。

使用特权

评论回复
地板
这条路能走多远|  楼主 | 2017-1-17 11:34 | 只看该作者

谢谢

使用特权

评论回复
5
这条路能走多远|  楼主 | 2017-1-17 11:38 | 只看该作者

我曾经用过虚拟串口给labview程序发送过数。接收设置为4这样,确实能收到俩个字节,而且高低位没错,还加上串口助手自动发的回车和换行。单片机我也给串口调试助手发送过,也能按顺序收到两个字节。但是我将单片机和labview连在一块就高低位倒过来一样

使用特权

评论回复
6
这条路能走多远|  楼主 | 2017-1-17 11:45 | 只看该作者

shenmegui.rar (30.73 KB)

使用特权

评论回复
7
songchenping| | 2017-1-17 12:32 | 只看该作者

大概看了一下你的程序,发送指令后无延时,先去掉流控,

使用特权

评论回复
8
songchenping| | 2017-1-17 12:41 | 只看该作者
还是开始说的,先用别人正确的程序检测你的单片机,然后用单片机串口检测你的LABVIEW程序。

使用特权

评论回复
9
这条路能走多远|  楼主 | 2017-1-17 13:24 | 只看该作者
songchenping 发表于 2017-1-17 12:32
大概看了一下你的程序,发送指令后无延时,先去掉流控,

谢谢,我没注意到流控制 对这个 有点陌生。流控制就是单片机上的
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
单片机上面没有。labview 的VISA也不能有?但我好像前面板我是关着的,不过现在我加了个5MS延时在循环框里,还给单片机加了个收到数据才启动数据采集和发送的循环。
但是我写入命令那块是空的 就点开写入开关,一运行LV就有数据接收进来。而且数据还是不对,不过刚有一次好像是采对了,一直在我要的那个数据范围,不过重新开了次,又恢复了原样

使用特权

评论回复
10
这条路能走多远|  楼主 | 2017-1-17 13:25 | 只看该作者
songchenping 发表于 2017-1-17 12:41
还是开始说的,先用别人正确的程序检测你的单片机,然后用单片机串口检测你的LABVIEW程序。 ...

我没有正确的程序。。。我也想用别人的

使用特权

评论回复
11
这条路能走多远|  楼主 | 2017-1-17 13:45 | 只看该作者
songchenping 发表于 2017-1-17 12:41
还是开始说的,先用别人正确的程序检测你的单片机,然后用单片机串口检测你的LABVIEW程序。 ...

大神,现在真的是有时可以有时候不可以。我觉得问题应该在接受字节和延时上面。可VISA的工作流程数据流我真的不是很清楚。他里面的延时和图表更新,还有接收字节数目和返回的字节。
我曾经实验过接受字节我定100 我发了120多个数,结果程序结束,返回数是20.然后我发3个数,一次次发,超时了,最后显示我发了多少个字节,图表也才有数据。而我连续发送时,字节我定了好像不止一百,但是返回数没到我所设置的字节也有显示变化。

使用特权

评论回复
12
songchenping| | 2017-1-17 13:47 | 只看该作者
这条路能走多远 发表于 2017-1-17 13:25
我没有正确的程序。。。我也想用别人的

你把你的程序里多余的东西全去掉,先不停地接收数据,并写入到一个记事本里面,最后查看一下,

使用特权

评论回复
13
这条路能走多远|  楼主 | 2017-1-17 14:04 | 只看该作者
songchenping 发表于 2017-1-17 13:47
你把你的程序里多余的东西全去掉,先不停地接收数据,并写入到一个记事本里面,最后查看一下, ...

那些是把两字节合并的,我检查过那一部分了。而且有个字符串显示功能 确实是倒置了高低位。那些数据都是传感器输出的补码,我已经两次看都正确的数据了,不过我把labview重开一遍又没了。就出现两种情况,数据几乎是一样的

使用特权

评论回复
14
songchenping| | 2017-1-17 14:11 | 只看该作者
咱现在讨论的如何找到问题所在,你可以把接收数据分解成一个一个接收,然后进行合并。

使用特权

评论回复
15
这条路能走多远|  楼主 | 2017-1-17 14:16 | 只看该作者
大神我想我发现问题了 。。 VISA自带的范例是开启终止符结束的,而我低位很有可能出现A  就是十进制的10。所以下次循环读入VISA的会是高位字节,造成他们连接在一起就倒过来了。。。
好吧 ,我再试几次,不过我真不明白为什么我把终止符时写入开关关闭,我写入窗口什么都没写 一运行就有数据发送给单片机了。是不是我一点开运行,labview会给串口变换下电平,然后单片机误以为收到的是数据。。可我用串口调试好像没这个

使用特权

评论回复
16
这条路能走多远|  楼主 | 2017-1-17 14:22 | 只看该作者
songchenping 发表于 2017-1-17 13:47
你把你的程序里多余的东西全去掉,先不停地接收数据,并写入到一个记事本里面,最后查看一下, ...

谢谢你 热心的版主

使用特权

评论回复
17
这条路能走多远|  楼主 | 2017-1-19 20:43 | 只看该作者
songchenping 发表于 2017-1-17 13:47
你把你的程序里多余的东西全去掉,先不停地接收数据,并写入到一个记事本里面,最后查看一下, ...

版主,我想问下我那个程序想把经过运算的flout型数据最后放在什么类型的文件里比较好,我想做下数据分析处理。

使用特权

评论回复
18
songchenping| | 2017-1-20 07:56 | 只看该作者
这条路能走多远 发表于 2017-1-19 20:43
版主,我想问下我那个程序想把经过运算的flout型数据最后放在什么类型的文件里比较好,我想做下数据分析 ...

记事本

使用特权

评论回复
19
这条路能走多远|  楼主 | 2017-1-20 10:50 | 只看该作者
txt?我试了。
但是我VISA是循环采集,我把写入文件放在循环框外没数据,放在里面,就采读取的字节,而且是种好像是ASCII码的形式,我想像趋势图那样有记录数据历史般的功能,怎么办。。

使用特权

评论回复
20
这条路能走多远|  楼主 | 2017-1-20 10:51 | 只看该作者

txt?我试了。
但是我VISA是循环采集,我把写入文件放在循环框外没数据,放在里面,就采读取的字节,而且是种好像是ASCII码的形式,我想像趋势图那样有记录数据历史般的功能,怎么办。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

112

帖子

0

粉丝