|
采集信号:采集的是400HZ正弦信号,由于单片机采集范围是0-3.3V,将输入信号进行偏执,偏置1.5V, ; T) D6 V! r/ ~0 y/ d2 \ 采集方法:使用定时器10u出发一次,正弦信号一个周期2.5ms,一个周期采集250次 d: l; X0 z: V' Z4 Z 4 w& ]! O* T- j6 E 信号处理:采集信号计算每个周期最大值与最小值差值,采集100个周期,再取平均值,处理后上传结果与输入信号基本符合。2 h' `) C. l4 i) v9 d* M 设计中遇见问题 ! J" T. Z# E& _" z5 b' \0 V' @ 1.采集的最大值与最小值相同,计算结果为0,最终发现当通道采样时间为最小值ADC_SAMPLETIME_3CYCLES时才可以采集到各个采样点数值。4 e# z7 [; ~ A : o0 ]( T8 N7 k8 O8 G8 m$ u" o" q
定时器配置 x7 d! K# s( X/ Q. k- Q 系统周期为72M,定时器中断10us触发一次
回调函数中使能定时器标志位
标志位使能后,打开ADC采集,并取最大值和最小值,同时记录采集次数,共采集270次,完成一次采集需要2.7ms,输入信号周期为2.5ms,因此2.7ms的采集不会出现漏采问题确保2.7ms的采集时间内有一个完整的周期。& B7 g& B3 H. j ' `' Y9 _0 O& g j* H) E7 w
将采集100个周期的差值取均值,然后通过串口上传到上位机( f4 R* L4 w/ Z; x
解析数据后,输入信号与反馈信号基本吻合。1 W, e. D( X! n' a2 t; K3 c
ADC1的时钟频率为32M,2分频后为16M,完成一次采集需要3个时钟周期,完成ADC一次采集所需时间小于1us。 ———————————————— 版权声明:qq_35355263# U& t0 a% n6 ^: t8 J, @2 K 如有侵权请联系删除4 P2 {% Q) z+ Z5 t7 o6 y4 ? |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版