STM32定时器中断

本文介绍了STM32中的定时器工作原理,包括基本定时器(如TIM6,7)和通用定时器(TIM2-5)的配置,如选择时钟源、配置PSC预分频器、CNT计数器和ARR自动重装载值,以及如何设置定时频率和启用中断。
摘要由CSDN通过智能技术生成

定时器可以对输入的时钟进行计数,并在计数值达到设定值时发出中断

定时器就是一个计数器

预分频器:对系统时钟进行分频得到定时器时钟频率

自动重装在值:计数多少个进入中断

基本定时器两个,tim6和7,挂载在apb1

通用定时器四个:tim2、3、4和5,挂载在apb1

高级定时器两个:tim1和8,挂载在apb2

PSC预分频器,把系统时钟ck_psc进行分频得到ck_cnt时钟给cnt计数器

cnt计数器:计时增加或者减少

自动重装载值:上限值

基本定时器:内部时钟一般72mhz=72000000hz

通用定时器:内部时钟或者外部时钟都可以

溢出时间就是溢出频率的倒数

定时器中断:

1、开启RCC时钟

2、选择时钟源:内部或者外部

3、配置时基单元PSC预分频器、CNT计数器、ARR自动重装载值

4、配置中断

5、配置NVIC

 

  1. 开始时钟,要使用APB1外设时钟

2、选择时基单元

其中Intelernalclockconfig配置tim2选择内部时钟,一般默认就是内部时钟可以不设置

Tim2使用内部时钟,可以不调用,默认内部时钟

3配置时基单元

TIMCK_DIV1选择不分频

TIM_CounterMode_up向上计数

period:周期就是ARR自动重装器的值

prescaler:预分频器的值

repetitioncounter重复计数器的值

setcount和getcount获取计数器CNT的值

定时频率=ck_psc/(psc+1)/(arr+1)

时间频率的倒数

定时1s就是1hz,1s=0.001ms,1/1hz=1s

ck_psc=72000000hz

psc+1=7200

arr+1=1000

定时器频率=72000000/7200/10000=1

对72000000进行7200分频就是10000=10khz

在10的频率下计数10000个数,就是1s

4、使能定时器中断

使能中断后配置NVIC:

5、nvic配置

6、启动定时器

tim_cmd(timx,enable)

配置完成后,1s进一次中断,可以再中断中进行想要的操作。

在开启中断前面调用一下,手动把中断标志位清除一下。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值