MM32SPIN0280内部时钟捕获外部HSE时钟

cathy的头像
cathy 发布于:周五, 05/12/2023 - 09:19 ,关键词:

频率测量 

测频法(计频法)

对一段标准时间内的被测信号的上升沿数量进行计数。

测频法误差

计数器只能进行整数计数,而在标准信号周期时间窗口内,却不一定刚好有整数个被测信号周期。因此测频法造成的最大测量误差为±1个被测信号。建议用于被测信号频率较高的情况。

1.png

测周法(计时法)

在被测信号的两个上升沿间标准时间的计数。

测周法误差

计数器只能进行整数计数,而在标准时间窗口内,却不一定刚好有整数个标准信号周期。建议用于被测信号频率较低的情况。

2.png

由于SPIN0280可以很便捷的捕获LSI和HSE的128分频,所以使用测周法。

TIM2 通用定时器 

由一个16位可实时编程预分频器和一个32位计数方向可调的自动装载计数器组成,可以为用户提供便捷的计数定时功能,计数器时钟由预分频器分频得到。

TIM2具有多种用途:输入功能(测量输入信号的脉冲宽度、频率,PWM输入等),输出功能(PWM输出、单脉冲模式输出等)。

本次主要介绍TIM2的输入捕获功能:

输入捕获部分包括数字滤波器、多路复用、预分频器等,结构如下:

3.png

输入捕获模式下,当检测到信号ICx上的有效边沿后,计数器的当前值被锁存到对应的影子寄存器上,再复制到对应的捕获比较寄存器中。当开启了中断或DMA使能,发生捕获事件时,将产生相应的中断或DMA请求。发生捕获事件时,会将状态寄存器(TIM2_SR)中的捕获标志位 CCxIF 置 1,通过配置 CCxIF=0或读取TIM2_CCRx中的数据,清除CCxIF标志位。当CCxIF未被清零时,发生输入捕获事件,重复捕获标志位CCxOF将会被置1,通过配置CCxOF=0,可以清除CCxOF标志位。

SPIN0280的通用定时器TIM2有输入选项寄存器(TIM2_OR),可以很便捷的复用通道四,配置输入为CH4 GPIO 或比较器输入或LSI或HSE的128分频

4.png

SPIN0280内部时钟捕获外部HSE时钟具体步骤

1、开启HSI时钟(8M)并倍频(最高96MHz)

2、TIM2挂载在APB1上,使能TIM2时钟

3、配置TIM2,计数器清空,由低向高计数,上升沿触发,时钟不分频

4、配置TIM2的通道4作为输入捕获,上升沿触发,输入信号8分频

5、开启TIM2通道4的时钟中断,并配置NVIC和编写中断函数

6、开启HSE时钟,等待稳定

7、配置TIM2通道4输入信号为HSE的128分频

示例代码如下:

5.png

6.png

示例输出结果:

7.png

来源:灵动MM32MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 4