|
采集信号:采集的是400HZ正弦信号,由于单片机采集范围是0-3.3V,将输入信号进行偏执,偏置1.5V,9 T; X6 d& Y9 E$ C/ K. x # }# A7 n# e Y& L4 R+ x0 ? 采集方法:使用定时器10u出发一次,正弦信号一个周期2.5ms,一个周期采集250次 ' Z6 D; L1 a5 ]9 s! t0 H 信号处理:采集信号计算每个周期最大值与最小值差值,采集100个周期,再取平均值,处理后上传结果与输入信号基本符合。4 V' b( N9 w' [" C8 E" k% V 设计中遇见问题( G/ l- S9 F- q! i : S) T0 d) s/ @9 t- L( T 1.采集的最大值与最小值相同,计算结果为0,最终发现当通道采样时间为最小值ADC_SAMPLETIME_3CYCLES时才可以采集到各个采样点数值。7 K$ c8 a }, i. f* w3 N5 v/ V6 a ; d2 @6 s2 i5 i/ g, g2 J& I) ~
定时器配置 系统周期为72M,定时器中断10us触发一次5 e/ c* _1 b( Z# f $ w; v1 B+ I4 G$ `6 q: M( Z
) [( L9 q: w- Z. k$ Y7 p" F2 ? 回调函数中使能定时器标志位
标志位使能后,打开ADC采集,并取最大值和最小值,同时记录采集次数,共采集270次,完成一次采集需要2.7ms,输入信号周期为2.5ms,因此2.7ms的采集不会出现漏采问题确保2.7ms的采集时间内有一个完整的周期。
将采集100个周期的差值取均值,然后通过串口上传到上位机 1 L) l( `4 i+ a% X, L5 c$ g7 y
8 ~8 k4 t! |( w0 r 解析数据后,输入信号与反馈信号基本吻合。
ADC1的时钟频率为32M,2分频后为16M,完成一次采集需要3个时钟周期,完成ADC一次采集所需时间小于1us。6 I/ j. e2 L* T ————————————————/ k3 K4 K/ e, [, a; W& ? 版权声明:qq_35355263+ r- ?8 J _2 q3 t1 S 如有侵权请联系删除- b3 t) }2 a- F: u) v |
【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 功能的使用
微信公众号
手机版