首页 理论教育 STM系列单片机编程:定时器控制

STM系列单片机编程:定时器控制

时间:2023-11-23 理论教育 版权反馈
【摘要】:允许TIM3工作在配置完后要开启定时器,通过TIM3_CR1的CEN位来设置。2)定时器程序设计以TIM3定时器的工作频率10 kHz为例:寄存器的设置参见图6.40的寄存器定义。图6.40定时器编程的相关寄存器介绍上面已对TIM3编程,0.5 s产生一次中断。中断设置好后,可编写定时器中断服务程序:清除中断标志需要对定时器的状态寄存器进行操作。图6.41定时器状态寄存器

STM系列单片机编程:定时器控制

1)通用定时器配置步骤

(1)TIM3时钟使能

通过APB1ENR的第1位来设置TIM3的时钟,因为在Stm32_Clock_Init函数里面把APB1的分频设置为2了,所以TIM3时钟就是APB1时钟的2倍,等于系统时钟(72 MHz)。

(2)设置TIM3_ARR和TIM3_PSC的值

通过这两个寄存器,设置自动重装的值及分频系数。这两个参数加上时钟频率就决定了定时器的溢出时间。

定时器的工作频率计算公式为:

其中CK_CNT表示定时器工作频率;TIMx_PSC表示分频系数。

例如通用定时器的时钟为72 MHz,分频比为7 199,如果想要得到一个1 s的定时,定时计数器的值需要设定为

因为720 00 000/7 200=10 kHz

时钟周期T=1/10 kHz=100 μs

100 μs×10 000=1 s

结论:分频比为7 199的定时计数器的值10 000。

(3)设置TIM3_DIER允许更新中断

因为要使用TIM3的更新中断,所以设置DIER的UIE位,并使能触发中断。

(4)允许TIM3工作

在配置完后要开启定时器,通过TIM3_CR1的CEN位来设置。(www.xing528.com)

(5)TIM3中断分组设置

在定时器配置完成之后,因为要产生中断,必不可少地要设置NVIC相关寄存器,以使能TIM3中断。

(6)编写中断服务函数

编写定时器中断服务函数,通过该函数处理定时器产生的相关中断。中断产生后,通过状态寄存器的值来判断此次产生的中断属于什么类型,然后执行相关的操作。

2)定时器程序设计

以TIM3定时器的工作频率10 kHz为例:

寄存器的设置参见图6.40的寄存器定义。

图6.40 定时器编程的相关寄存器介绍

上面已对TIM3编程,0.5 s产生一次中断。

若要编写中断程序,需要对TIM3进行中断设置,参见中断一节。中断设置好后,可编写定时器中断服务程序:

清除中断标志需要对定时器的状态寄存器进行操作。定时器状态寄存器定义如图6.41所示。

图6.41 定时器状态寄存器(TIMx_SR)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈