问题描述
- 关于串口接受数据并实时绘制波形的疑问
-
想用单片机采集心电数据,并通过串口将数据实时传输给上位机并显示心电波形,用VC++编写界面。
问题1:假设单片机设置采样率为250Hz,串口通信需要时间,1s内通过串口助手接受的数据小于250个,这是不是不能保证数据的实时性呢?
问题2:数据传输间隔比较短,来一个数据就画一次图,波形是不是变化很快?看了网上的例子,通过定时器定时取串口接收的数据并画图,画的数据不是该时刻串口接收数据,而且不是所有串口接收的数据都能画出来,这样是不是就会造成波形失真呢?
求给一下思路,谁有例子可以供参考啊?
解决方案
单片机以固定的频率向串口发送数据,上位机定时读取串口数据,串口的数据会缓存的,你不用担心读取不到,或者丢失。只要你读取的频率和单片机发送的频率能配合上,就不用担心你所说的不实时的问题。
最后,在这里,波形失真,与通讯无关,与你怎么获取和绘制这些数据有关。
解决方案二:
在数据的准确性和实时性之间做一个平衡
解决方案三:
用mschart控件,或者自己绘图。
时间: 2024-10-27 19:27:46