[求助讨论] 关于labview和单片机的通讯程序,请进

[复制链接]
 楼主| 这条路能走多远 发表于 2017-1-17 09:59 | 显示全部楼层 |阅读模式
我做了个labview采集单片机的串口,结果单片机采集的数据没有错,但是发到labview这里就变成高低位倒过来了,或是少收了一个数一样。
这里配上程序给大家帮忙参考下。。烦死。我用虚拟串口这些,局部的测试都没问题的。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
songchenping 发表于 2017-1-17 10:26 | 显示全部楼层
可以把你的LABVIEW程序附上,让我看看有什么问题没有
songchenping 发表于 2017-1-17 10:26 | 显示全部楼层
截图看不出来的。
 楼主| 这条路能走多远 发表于 2017-1-17 11:34 | 显示全部楼层

谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 这条路能走多远 发表于 2017-1-17 11:38 | 显示全部楼层

我曾经用过虚拟串口给labview程序发送过数。接收设置为4这样,确实能收到俩个字节,而且高低位没错,还加上串口助手自动发的回车和换行。单片机我也给串口调试助手发送过,也能按顺序收到两个字节。但是我将单片机和labview连在一块就高低位倒过来一样
 楼主| 这条路能走多远 发表于 2017-1-17 11:45 | 显示全部楼层


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
songchenping 发表于 2017-1-17 12:32 | 显示全部楼层

大概看了一下你的程序,发送指令后无延时,先去掉流控,
songchenping 发表于 2017-1-17 12:41 | 显示全部楼层
还是开始说的,先用别人正确的程序检测你的单片机,然后用单片机串口检测你的LABVIEW程序。
 楼主| 这条路能走多远 发表于 2017-1-17 13:24 | 显示全部楼层
songchenping 发表于 2017-1-17 12:32
大概看了一下你的程序,发送指令后无延时,先去掉流控,

谢谢,我没注意到流控制 对这个 有点陌生。流控制就是单片机上的
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
单片机上面没有。labview 的VISA也不能有?但我好像前面板我是关着的,不过现在我加了个5MS延时在循环框里,还给单片机加了个收到数据才启动数据采集和发送的循环。
但是我写入命令那块是空的 就点开写入开关,一运行LV就有数据接收进来。而且数据还是不对,不过刚有一次好像是采对了,一直在我要的那个数据范围,不过重新开了次,又恢复了原样
 楼主| 这条路能走多远 发表于 2017-1-17 13:25 | 显示全部楼层
songchenping 发表于 2017-1-17 12:41
还是开始说的,先用别人正确的程序检测你的单片机,然后用单片机串口检测你的LABVIEW程序。 ...

我没有正确的程序。。。我也想用别人的
 楼主| 这条路能走多远 发表于 2017-1-17 13:45 | 显示全部楼层
songchenping 发表于 2017-1-17 12:41
还是开始说的,先用别人正确的程序检测你的单片机,然后用单片机串口检测你的LABVIEW程序。 ...

大神,现在真的是有时可以有时候不可以。我觉得问题应该在接受字节和延时上面。可VISA的工作流程数据流我真的不是很清楚。他里面的延时和图表更新,还有接收字节数目和返回的字节。
我曾经实验过接受字节我定100 我发了120多个数,结果程序结束,返回数是20.然后我发3个数,一次次发,超时了,最后显示我发了多少个字节,图表也才有数据。而我连续发送时,字节我定了好像不止一百,但是返回数没到我所设置的字节也有显示变化。
songchenping 发表于 2017-1-17 13:47 | 显示全部楼层
这条路能走多远 发表于 2017-1-17 13:25
我没有正确的程序。。。我也想用别人的

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

那些是把两字节合并的,我检查过那一部分了。而且有个字符串显示功能 确实是倒置了高低位。那些数据都是传感器输出的补码,我已经两次看都正确的数据了,不过我把labview重开一遍又没了。就出现两种情况,数据几乎是一样的
songchenping 发表于 2017-1-17 14:11 | 显示全部楼层
咱现在讨论的如何找到问题所在,你可以把接收数据分解成一个一个接收,然后进行合并。
 楼主| 这条路能走多远 发表于 2017-1-17 14:16 | 显示全部楼层
大神我想我发现问题了 。。 VISA自带的范例是开启终止符结束的,而我低位很有可能出现A  就是十进制的10。所以下次循环读入VISA的会是高位字节,造成他们连接在一起就倒过来了。。。
好吧 ,我再试几次,不过我真不明白为什么我把终止符时写入开关关闭,我写入窗口什么都没写 一运行就有数据发送给单片机了。是不是我一点开运行,labview会给串口变换下电平,然后单片机误以为收到的是数据。。可我用串口调试好像没这个
 楼主| 这条路能走多远 发表于 2017-1-17 14:22 | 显示全部楼层
songchenping 发表于 2017-1-17 13:47
你把你的程序里多余的东西全去掉,先不停地接收数据,并写入到一个记事本里面,最后查看一下, ...

谢谢你 热心的版主
 楼主| 这条路能走多远 发表于 2017-1-19 20:43 | 显示全部楼层
songchenping 发表于 2017-1-17 13:47
你把你的程序里多余的东西全去掉,先不停地接收数据,并写入到一个记事本里面,最后查看一下, ...

版主,我想问下我那个程序想把经过运算的flout型数据最后放在什么类型的文件里比较好,我想做下数据分析处理。
songchenping 发表于 2017-1-20 07:56 | 显示全部楼层
这条路能走多远 发表于 2017-1-19 20:43
版主,我想问下我那个程序想把经过运算的flout型数据最后放在什么类型的文件里比较好,我想做下数据分析 ...

记事本
 楼主| 这条路能走多远 发表于 2017-1-20 10:50 | 显示全部楼层
txt?我试了。
但是我VISA是循环采集,我把写入文件放在循环框外没数据,放在里面,就采读取的字节,而且是种好像是ASCII码的形式,我想像趋势图那样有记录数据历史般的功能,怎么办。。
 楼主| 这条路能走多远 发表于 2017-1-20 10:51 | 显示全部楼层

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

本版积分规则

45

主题

112

帖子

0

粉丝
快速回复 返回顶部 返回列表