stm32cubemx 定时器中断

8 篇文章 0 订阅
5 篇文章 3 订阅

stm32cubemx 定时器中断

一、基础知识

stm32f4:

在这里插入图片描述

二、软件配置

定时器时钟源:

  • APB2负责AD,I/O,高级TIM,串口1。

  • APB1负责DA,USB,SPI,I2C,CAN,串口2345,普通TIM
    所支持速度不同:APB2支持高速状态下的工作,APB1支持低速状态下的工作。

我所使用的如下:

在这里插入图片描述

这里配置定时器2,每隔1秒产生一次中断。计数器时钟源选择内部时钟(Internal Clock),ETR2为外部时钟模式2。

在这里插入图片描述

下面配置定时器的参数。APB1时钟频率为84Mhz.

  • Prescaler(时钟预分频数):4200-1
  • Counter 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.

在这里插入图片描述

并是能定时器中断。

三、代码实现

定时器初始化完成之后,要启动定时器,用下面的函数。

HAL_TIM_Base_Start_IT(&htim2);

在这里插入图片描述

在定时器回调函数中完成对应的任务,回调函数如下:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if (htim == (&htim2))
    {
       LED2=!LED2;
    }

}

这样就可实现每隔一秒led灯闪烁。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值