STM32
直播中

王晾其

9年用户 1106经验值
私信 关注
[问答]

STM32F103RCT6定时器采集高电平数据有波动的原因?

通过STM32F103RCT6需要采集3路方波的高电平,没有使用输入捕获采集(输入捕获是特定的引脚,比较麻烦)采集的方波的周期是7MS频率145HZ,通过定时加外部中断的方式实现了采集,由于对采集电平的精度有要求,所以在串口直接打印得到的数据上看会有最小位数为10左右的跳动。但是通过软件滤波没有实现平稳的输出。我个人觉得是采集的方式有问题,导致的数据跳动,有没有高手请教一下,通过软件来修正一下,使用了窗口滑动滤波测试效果很差,延迟比较严重。

回帖(1)

杨万富

2024-4-15 15:33:07
数据跳动的原因可能有很多,以下是一些可能导致数据跳动的原因:

1. 采样时的电压噪声:如果你的系统中存在电压噪声或者干扰,这可能导致采样结果不稳定。可以考虑在采样之前对信号进行一些预处理,例如使用滤波器来滤除噪声。

2. 采样时的时钟不准确:如果你的时钟源不准确,或者存在时钟漂移,这会导致采样时的时间间隔不稳定,从而导致采样结果不稳定。可以尝试使用更准确的时钟源,或者采用同步的方式进行采样。

3. 中断处理时间:如果在处理中断时花费的时间过长,会导致采样周期变长,从而使得采样结果不稳定。可以尝试优化中断处理程序,减少处理时间。

4. 数值计算误差:在进行数据计算或者处理时,如果存在数值计算的误差,会导致结果不稳定。可以检查计算过程中是否存在误差,并进行相应的处理。

根据你的描述,你已经尝试过使用软件滤波,并且存在延迟比较严重的问题。在进行软件滤波时,可以考虑使用更简单的滤波算法,例如移动平均滤波等。另外,你还可以尝试调整滤波器的参数,例如窗口大小等,以获得更好的滤波效果。

总结一下,要解决数据跳动的问题,你可以从以下几个方面入手:优化电路设计,使用更准确的时钟源,优化中断处理程序,检查数值计算过程是否存在误差,并尝试使用简单的滤波算法进行软件滤波。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分