|
采集信号:采集的是400HZ正弦信号,由于单片机采集范围是0-3.3V,将输入信号进行偏执,偏置1.5V,7 L- P2 e) L: g, u: ]! m ) B l6 G2 z R9 e) B 采集方法:使用定时器10u出发一次,正弦信号一个周期2.5ms,一个周期采集250次 % U5 m* N% k9 g' Y 信号处理:采集信号计算每个周期最大值与最小值差值,采集100个周期,再取平均值,处理后上传结果与输入信号基本符合。 , l( N2 m& n, O 设计中遇见问题6 g; v) i) V% n& S 1.采集的最大值与最小值相同,计算结果为0,最终发现当通道采样时间为最小值ADC_SAMPLETIME_3CYCLES时才可以采集到各个采样点数值。* ^9 F5 n7 u. W0 `; ~, w' \2 I' { ! r/ n* {* F- H4 W2 T5 l' L& H
+ q6 L, J; Y% N4 t, k! \# d6 G 定时器配置5 v0 s4 e) [! H3 j 系统周期为72M,定时器中断10us触发一次
回调函数中使能定时器标志位6 t# j- z9 ]4 J, `+ F/ l( O + [1 v8 d! p- q. l+ V' m
3 z& D+ j; [+ o 标志位使能后,打开ADC采集,并取最大值和最小值,同时记录采集次数,共采集270次,完成一次采集需要2.7ms,输入信号周期为2.5ms,因此2.7ms的采集不会出现漏采问题确保2.7ms的采集时间内有一个完整的周期。4 R B- ?0 X0 j5 O, [2 V2 i 0 M# R3 @! V* G* X" @( O6 s; o
将采集100个周期的差值取均值,然后通过串口上传到上位机( z3 I4 p8 P+ b+ e
( ?" J( z5 f6 z$ F6 A5 a 解析数据后,输入信号与反馈信号基本吻合。) p9 e5 J$ z1 J. i( J# [& j ; B+ p2 U: o4 s6 S) Z, ?
ADC1的时钟频率为32M,2分频后为16M,完成一次采集需要3个时钟周期,完成ADC一次采集所需时间小于1us。 ————————————————5 V t7 l1 i9 R 版权声明:qq_35355263# q2 O; G( A8 I0 s4 ~2 l 如有侵权请联系删除- ^, M+ t4 y( v . \+ g4 q/ p' I( l 3 h7 W0 O8 f' o: G8 a) ~5 N |
【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 功能的使用
微信公众号
手机版