MCU:STM32H750XB
编译平台:Keil-MDK5
STMCubeMX版本:MX:V6.2.1 Pack:STM32Cube_FW_H7_V1.9.0
1.打开STM32CubeMX,配置定时器TIM2的通道3(PA2)为输入捕获。分频值根据自己需要设置,分频值越大采出的频率精度越低。周期最好拉满,这样采集时不会溢出。
2.定时器TIM2的时钟源来自APB1,需要注意APB1有两种用途,一是给外设(不包括定时器)用的,为120MHz(H750主频拉满时),二是给定时器专用的,为上面的2倍即240MHz。 3.定时器TIM2的输入捕获回调函数里面主要实现如下几件事: (1)纪录开始捕获时计数器的值; (2)纪录结束捕获时计数器的值; (3)结束捕获时做个标记; 4.计算频率的方法为频率等于周期分之一,即f = 1 / T,周期T = (第2次捕获时计数器的值 - 第1次捕获时计数器的值) * (1 / 240000000)。故频率f = 240000000 / (第2次捕获时计数器的值 - 第1次捕获时计数器的值),为了提高准确度,这里就不只捕获2次了,而是100次,甚至1000次,最后再将这100次做平均。需要注意的是上面的定时器TIM2没有分频,主频为240000000,如果分过频则需对应调整。
MDK工程压缩包,包括STM32CubeMX工程: 链接:https://pan.baidu.com/s/1jRpDCt5x2nny8GH8Ww5KGQ 提取码:zmnp
|