2023.1.11 简单使用stm32内部定时器中断
STM32基本介绍
STM32F101xx、STM32F102xx和 STM32F103xx微控制器有以下定时器资源
高级控制定时器(TIM1和TIM8) APB2总线 通用TIMx (TIM2、TIM3、TIM4和TIM5)定时器 APB1总线 基本定时器(TIM6和TIM7) APB1总线 其中STM32F103C8T6 有TIM1、TIM2、TIM3、TIM4
定时器原理
时基单元包含:
预分频器寄存器 (TIMx_PSC) 计数器寄存器(TIMx_CNT) 自动装载寄存器 (TIMx_ARR) 这三个构成了基本的计时计数电路。
预分频器PSC将时钟源进行初步分频。以72M/Hz晶振为例,预分频器写0输出还是72M/Hz;预分频器写1输出则是72M/2=36M/Hz;预分频器写2输出则是72M/3=24M/Hz
计数器寄存器CNT将预分频器PSC的输出进行计数,每来一个上升沿加1。当达到最大值时自动清零重新计数。
但是我可以提前设定一个数,当计数器寄存器CNT达到目标值时就触发中断并清零。这就是自动装载寄存器 ARR的作用。
(计数器寄存器(TIMx_CNT) 预分频器寄存器 (TIMx_PSC) 自动装载寄存器 (TIMx_ARR)都是16位寄存器,所以最大值都是2^16=65535)
配置定时器程序讲解
接下来我将示范一下如何配置中断
<