目的是冲串口读取数据,然后用波形的形式化画出来。采用生产者消费者的模式。
串口的数据是250Hz的心电图,一共2500个数据,要求从串口读取后能先缓存500个数据后再以250Hz的速度画出波形来,同时串口继续接受读取后面剩下的数据。
目前问题是
1、串口只能读取6000个字节大约800个数据,剩下的数据都没有读出来,串口的buffer里后面全是0了。
2、缓存了500个数据后,画波形,实现不了250Hz的方式画波形
3、500个数据需要花好长时间才能读出来;
程序框图如下:
期待高手帮忙看看,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16进制的数据显示如前面板,这是其中一个数据的
非常感谢修改了代码,整体代码结构更为简洁了,有两个地方没明白:
1、使用的 判定范围并强制转换 函数,如果数据超出设定的边界值(-10和10),用什么数据替换了这个超出边界的值了?如此替换,不就失真了吗?
2、下位机数据的速度是4ms一个数据,那LABVIEW的WHILE循环里没有加等待时间,如何做到时序上匹配的?
编程技巧有待提高~_~望指教,谢谢。
第一,请你看清楚,我替换了没有?边界值你自己设定,我只是把超出设定边界的值不要了而已。请你再次看清楚
第二,我什么要在WHILE循环里加等待时间?你每个数据过来不是带有结束码吗?我以接收到结束码作为一个完整的数据,在这个 采集WHILE循环里面,它会以每收到一次结束码才会进入下一循环,如果没收到,就会一直等待。也就是说,WHILE循环的时间间隔取决于发来的数据有多快。我做有个时间间隔在里面,你可以看到每次循环的时间间隔。
第一,你再次看清楚代码。
第二,以结束码作为接收数据,可以不用加等待时间,因为每收到一次结束码,就证明有一帧完整的数据到来。
串口助手显示的接收端16进制数据
一周热门 更多>