串口高速数据采集的频率如何控制

2019-07-17 20:58发布

      请问大家做串口高速数据采集的时候一般怎么控制频率的,假设采样频率为500HZ,那么每间隔2ms就要采集一次,可是用等待或者等待下一个毫秒函数都会有误差,对于高速数据采集的时候好像不合适了,现在频率越做越高发现这个问题越来越突出,不知道遇到这样的问题,各位会如何保证采样频率的准确性。谢谢啦!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
hejin515
2019-07-19 22:26
luson_liu 发表于 2016-5-30 11:55
你的采样频率是500HZ了,即2ms采集一次数据,这个数据会暂时存储在串口的缓冲区中,一般串口的最大存储字节数为4096,一定要在字节数存储满之前,把数据捞走,否则会有数据丢失的情况。而你的捞取数据间隔为2ms,相当于采集的一次数据,不知道你这采集一次的数据字节数大小为多少?一般镭射数据都在8—16字节数,也就是说它 ...

你好,我的一次是54字节,频率目前是200HZ。用串口应该能够搞定,问题在于我的思路可能有问题。我是每5ms读取一次串口,是按串口大小属性节点读取全部字节的,然后将读取的数据进行处理计算显示写入保存等操作。关键是5ms的读取频率我是用等待下一毫秒控制的,你知道的,这个肯定会有误差。但是我一帧54字节,按波特率115200来算发送一次也需要4.785ms,这个和5ms太接近了,所以如果读取的时间不是刚刚好5ms ,很容易就会出现在数据还没发送完就开始读取了,就会不能读到完整的数据,这样频率就达不到。所以想知道大家是如何精确控制高频率的。

一周热门 更多>