STM32——定时器---定时中断

这篇博客详细介绍了如何在STM32中配置定时器,尤其是定时中断的设置步骤,包括时钟配置、时基单元设定、中断使能、NVIC配置及中断函数处理。同时,还探讨了外部时钟作为定时器源的配置方法,包括时钟源选择、输入引脚配置和滤波频率设定。
摘要由CSDN通过智能技术生成

学习江科大STM32教程,记录学习理解,方便复习。

一、配置流程

图1 流程图

1.配置时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

   开启通用定时器2,其挂载在APB1上

2.选择时钟源

TIM_InternalClockConfig(TIM2); //内部时钟驱动

 【注】①本文使用TIM的定时中断功能,所以用内部时钟源

            ②默认为内部时钟,可以不写这行代码

3.配置时基单元

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; //定义结构体,下面五行配置其成员
	 
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;  //1分频(滤波频率)
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;  //计数器向上计数
TIM_TimeBaseInitStructure.TIM_Period = 10000 - 1;  //ARR自动重装器的值(<65535)
TIM_TimeBaseInitStructure.TIM_Prescaler = 7200 - 1;  //PSC预分频器的值(<65535)
TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;  //重复计数器的值,高级定时器才有,给0
	 
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);

   每经过1s的定时,产生一次更新中断

      【计算方法】:(已知上文设置:预分频器PSC=7200-1,自动重装值ARR=10000-1)

                                CK_CNT_OV = CK_PSC / (PSC + 1) / (ARR + 1)

             【过程】:①72MHz的初始时钟频率进来,先分频,72 000 000➗7200 = 10000Hz

                                        (即此时每秒钟震动10000次,也就是每秒计数10000次)

                               ②每秒计数10000次,那计数10000次,不就是1s了吗?

                                        从公式上体现出来的就是,再➗10000 = 1 (s)

4.使能更新

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值