|
采集信号:采集的是400HZ正弦信号,由于单片机采集范围是0-3.3V,将输入信号进行偏执,偏置1.5V, 7 D+ E! ?$ T+ t* e 采集方法:使用定时器10u出发一次,正弦信号一个周期2.5ms,一个周期采集250次& ?2 W" B3 m ]3 C 信号处理:采集信号计算每个周期最大值与最小值差值,采集100个周期,再取平均值,处理后上传结果与输入信号基本符合。 设计中遇见问题 6 L2 n2 ~4 ~; \' O+ f 1.采集的最大值与最小值相同,计算结果为0,最终发现当通道采样时间为最小值ADC_SAMPLETIME_3CYCLES时才可以采集到各个采样点数值。 $ e+ r5 R6 g- W
定时器配置7 [3 [2 C" \& q7 J9 q( s6 d " Y0 t4 ?2 p a+ r0 S- a8 O0 s 系统周期为72M,定时器中断10us触发一次 ; Z! V4 Q" E2 Q8 R. l4 a
9 U4 n9 U9 E: w$ B8 @ 回调函数中使能定时器标志位
标志位使能后,打开ADC采集,并取最大值和最小值,同时记录采集次数,共采集270次,完成一次采集需要2.7ms,输入信号周期为2.5ms,因此2.7ms的采集不会出现漏采问题确保2.7ms的采集时间内有一个完整的周期。3 e6 r+ {1 {: t
将采集100个周期的差值取均值,然后通过串口上传到上位机
解析数据后,输入信号与反馈信号基本吻合。/ x$ k& y% v. Q% b' \2 I/ s) I/ L
* K/ c8 j# G! {$ c/ v) J, }7 s ADC1的时钟频率为32M,2分频后为16M,完成一次采集需要3个时钟周期,完成ADC一次采集所需时间小于1us。 ————————————————5 E- N% _: m9 j/ i' l2 N( \% l 版权声明:qq_35355263* R! W8 O3 A+ t* Q) d, [0 t# u8 f5 U' g- W 如有侵权请联系删除 ]" S* B- k& h) f7 n& Z9 l ( Z9 h: p) }5 f/ Y+ m$ B8 Q |
【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 功能的使用
微信公众号
手机版