|
采集信号:采集的是400HZ正弦信号,由于单片机采集范围是0-3.3V,将输入信号进行偏执,偏置1.5V,- Z" [/ \$ ~* Y5 e8 E- p* P 采集方法:使用定时器10u出发一次,正弦信号一个周期2.5ms,一个周期采集250次 / e# ?* V# P) U, G" g 信号处理:采集信号计算每个周期最大值与最小值差值,采集100个周期,再取平均值,处理后上传结果与输入信号基本符合。 设计中遇见问题) h- R7 f) _. t; ?" f5 b4 f) ^ ' E3 \3 @" ?5 L' s0 f2 h. S4 L 1.采集的最大值与最小值相同,计算结果为0,最终发现当通道采样时间为最小值ADC_SAMPLETIME_3CYCLES时才可以采集到各个采样点数值。
定时器配置 系统周期为72M,定时器中断10us触发一次( x: C7 Z; d6 a( W {: Y( k) z7 e! p
+ z* H) s0 v! M 回调函数中使能定时器标志位4 }1 X8 k0 b* ^- P* m+ y2 L% c! Y
标志位使能后,打开ADC采集,并取最大值和最小值,同时记录采集次数,共采集270次,完成一次采集需要2.7ms,输入信号周期为2.5ms,因此2.7ms的采集不会出现漏采问题确保2.7ms的采集时间内有一个完整的周期。& W( u( }6 V0 P( A) j2 ? 8 J% _; p+ C% D7 e: C8 g1 ~
! H6 ^6 K! C `3 Y ~" ? 将采集100个周期的差值取均值,然后通过串口上传到上位机0 ~: _5 z7 e6 X1 P$ w0 t9 ]! `( d
解析数据后,输入信号与反馈信号基本吻合。8 v2 f" H+ B. C7 o0 [5 b 0 ]& W% p" o! Y5 t( n# A, x
ADC1的时钟频率为32M,2分频后为16M,完成一次采集需要3个时钟周期,完成ADC一次采集所需时间小于1us。4 |. b8 O& {! H7 m ————————————————1 |0 F% M- {# I& j 版权声明:qq_353552634 f( c1 k9 G, N% a& T5 b/ X6 k$ D) n. @/ \ 如有侵权请联系删除 % e4 F; e' @( Z3 J9 d7 U |
【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 功能的使用
微信公众号
手机版