
采集信号:采集的是400HZ正弦信号,由于单片机采集范围是0-3.3V,将输入信号进行偏执,偏置1.5V, i: _( d' n4 L- o. v& A- G 采集方法:使用定时器10u出发一次,正弦信号一个周期2.5ms,一个周期采集250次 信号处理:采集信号计算每个周期最大值与最小值差值,采集100个周期,再取平均值,处理后上传结果与输入信号基本符合。! K& n% S& g* t; t% o j' Z. x . ]+ j+ O' D3 T! A! J 设计中遇见问题 1.采集的最大值与最小值相同,计算结果为0,最终发现当通道采样时间为最小值ADC_SAMPLETIME_3CYCLES时才可以采集到各个采样点数值。5 C- s5 F! T3 n$ w ![]() 定时器配置 : [$ _& n9 u. w5 h# ^& x8 e 系统周期为72M,定时器中断10us触发一次& ^0 Z! |5 H4 g* p! @& C7 M + B# I# E4 q! k9 I/ j6 I; y% o ![]() - B! I7 o' Y. T. p- x; p ?: f 回调函数中使能定时器标志位# K6 `) X$ n r( C1 d7 K7 w7 G( P ![]() ' Q$ Y0 H; u: ^9 M7 m- e 标志位使能后,打开ADC采集,并取最大值和最小值,同时记录采集次数,共采集270次,完成一次采集需要2.7ms,输入信号周期为2.5ms,因此2.7ms的采集不会出现漏采问题确保2.7ms的采集时间内有一个完整的周期。 5 y% t) E, P% I: V* S ![]() 将采集100个周期的差值取均值,然后通过串口上传到上位机% w# L# U$ C2 A0 Q# x- n5 \) ?3 P! X ' I/ g: D& q# j: ~ ![]() 解析数据后,输入信号与反馈信号基本吻合。 ![]() * U* ^) z5 e2 E) Y7 i: V- ~ ADC1的时钟频率为32M,2分频后为16M,完成一次采集需要3个时钟周期,完成ADC一次采集所需时间小于1us。9 U8 x% I, J, {9 P7 y4 z3 h ————————————————% Z* }/ w; z6 e* g 版权声明:qq_35355263 如有侵权请联系删除 " i. s4 ?* J5 o) V; e' H; R9 t |
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南