目的是冲串口读取数据,然后用波形的形式化画出来。采用生产者消费者的模式。
串口的数据是250Hz的心电图,一共2500个数据,要求从串口读取后能先缓存500个数据后再以250Hz的速度画出波形来,同时串口继续接受读取后面剩下的数据。
目前问题是
1、串口只能读取6000个字节大约800个数据,剩下的数据都没有读出来,串口的buffer里后面全是0了。
2、缓存了500个数据后,画波形,实现不了250Hz的方式画波形
3、500个数据需要花好长时间才能读出来;
程序框图如下:
期待高手帮忙看看,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
第一,你怎么知道串口只能接收6000个字节?
第二,既然你都知道串口的数据是以250Hz(也就是4ms)速度更新数据过来,那么请问,你采集循环里面至少时间延迟都在200ms以上了(即采集速度比数据更新速度慢),你又如何确保能采集到每个数据(即2500个数据你能采集到吗)?
第三,你有没有先用串口助手采集数据看看?确认一下能否采集到2500个数据,还有每个数据字符串的16进制是什么,每个数据后面有没有结束码?如果有,那么你的程序就不是这样写了,如果没有,那么你的程序也不是这样写的。
第四,你对于队列的用法用错了,你对于接收到的字符串数据也没有去判断数据的有效性。
一周热门 更多>