技术分享
stm32cubemx 定时器中断
00 分钟
2021-9-3
2024-4-7
type
status
date
slug
summary
tags
category
icon
password
文章筛选

stm32cubemx 定时器中断

一、基础知识

stm32f4:
notion image

二、软件配置

定时器时钟源:
  • APB2负责AD,I/O,高级TIM,串口1。
  • APB1负责DA,USB,SPI,I2C,CAN,串口2345,普通TIM。 所支持速度不同:APB2支持高速状态下的工作,APB1支持低速状态下的工作。
我所使用的如下:
notion image
这里配置定时器2,每隔1秒产生一次中断。计数器时钟源选择内部时钟(Internal Clock),ETR2为外部时钟模式2。
notion image
下面配置定时器的参数。APB1时钟频率为84Mhz.
Prescaler(时钟预分频数):4200-1Counter Mode(计数模式):Up(向上计数模式) 基本定时器只能是向上计数Counter Period(自动重装载值):2000-1 则定时时间 Tclk={1/[84 000 000 / (4200-1+1)] }* (2000-1+1)=1 秒auto-reload-preload(自动重装载):Enable(使能)TRGO Parameters(触发输出):不使能 在定时器的定时时间到达的时候输出一个信号(如:定时器更新产TRGO信号来触发ADC的同步转换)
Counter Mode,Counter Period这俩个参数都是16位的,范围是0~65535.
notion image
并是能定时器中断。

三、代码实现

定时器初始化完成之后,要启动定时器,用下面的函数。
HAL_TIM_Base_Start_IT(&htim2);
notion image
在定时器回调函数中完成对应的任务,回调函数如下:
这样就可实现每隔一秒led灯闪烁。

评论
  • Waline