labview串口通信问题
labview吧
全部回复
仅看楼主
level 1
甜欧shine 楼主
labview使用串口接收单片机数据,单片机停止发送数据,上位机不停止接收,怎么解决
2016年04月20日 13点04分 1
level 15
单片机停止发送数据时,发送某一特殊字符,当上位机接收到该特殊字符后,停止接收。
2016年04月20日 15点04分 2
@第N个魔法师 为何要改成0d0a?
2016年04月20日 16点04分
level 1
甜欧shine 楼主
就是当数据量比较多的时候程序就跑飞了,波形就乱掉了,这个时候我终止了下位机通信,但是上位机不知道从哪里接收到的数据还在不停的接收,因为还没有到发送完成,所以还没有读到终止符
2016年04月23日 07点04分 3
level 1
甜欧shine 楼主
就是数据大概接收到了7万多个,我后来将下位机采样率降低到100hz,也就是每10ms发送两个数据,到10万多个数据也还没有出现问题,我本来使用的是1000Hz,但是个人觉得应该和这个没有关联,想知道这个原因是什么,谢谢解答
2016年04月23日 07点04分 4
level 15
如果那下位机发数据,LV做上位机收数据,一般采用的标准收发模式为生产者-消费者模式。LV读取下位机数据后入队列,再出队列显示或做数据处理,这样数据不会丢失或重复。
2016年04月23日 15点04分 5
level 1
甜欧shine 楼主
什么事生产者消费者模式啊。。。
你的意思是要加队列吗?我是直接用串口读取然后画出波形的,没有用队列
2016年04月24日 03点04分 6
level 1
甜欧shine 楼主
那我试试队列看看
2016年04月24日 03点04分 7
level 1
甜欧shine 楼主
有没有这方面的实例啊,队列不太会用,可以发我参考下吗,谢谢解答~~
2016年04月24日 03点04分 8
level 1
甜欧shine 楼主
我要实现的是从下位机不停的接收数据实时显示到上位机上
2016年04月24日 03点04分 9
level 13
串口是有缓冲的,1000hz周期太短了,上位机来不及接收,数据都堆在串口的缓冲里,所以下位机停止发送,但上位机还在从串口的缓冲里读数据。
2016年04月24日 05点04分 10
level 1
甜欧shine 楼主
谢谢你啊,但是我需要1000hz怎么处理啊,并且后来数据我觉得有丢失或者错误的情况,上次你提到的队列前几天较忙 ,我还没有试,那个能解决这个问题吗
2016年05月03日 02点05分 11
你在下位机弄个临时缓冲,每一毫秒收一个数,攒够10个数一起发,上位机10毫秒一次接收十个数。另外把波特率提高,当然这不够实时,不知是否满足需求。
2016年05月03日 13点05分
level 3
怎么把单片机数据给上机位啊
2016年05月06日 13点05分 13
level 3
怎么把单片机数据给上机位啊
2016年05月06日 13点05分 14
1