STM32-CubuMX-HAL库学习(四)--实现定时器中断

硬件平台:正点原子STM32MINI开发板(STM32RCT6)
软件平台:STM32CubeMX
KEIL5
实现功能:定时器控制LED灯500ms亮灭
硬件连接: PA8 ->LED0
说明:有时候程序下载后不实现,可试着复位一下,也可在魔术棒配置中打开下载后复位。
(仅仅写了定时器中断部分,其余初始化未做说明)
在这里插入图片描述
1、选择定时器2,并选择时钟源为内部时钟
在这里插入图片描述
2、分频系数设为7199,计数值设为4999,则定的时间为
(7199+1)*(4999+1)/72000000=500ms
在这里插入图片描述
3、使能定时器中断
在这里插入图片描述
4、选择中断优先级配置。
在这里插入图片描述
5、使用函数HAL_TIM_Base_Start_IT(&htim2);打开定时器2中断
在这里插入图片描述
6、stm32f1xx_it.c中,有定时器2的中断服务函数,点击HAL_TIM_IRQHandler(&htim2);转到定义。
在这里插入图片描述
7、关于定时器有很多处理,输入捕获,PWM输出等,我们这里主要看定时器的更新。
在这里插入图片描述
8、转到定义,找到__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);这也是个回调函数,是虚函数。
在这里插入图片描述
9、main.c函数中重定义此回调函数,并编写相关代码,代码含义为如果中断由定时器2触发,翻转PA8电平。

在用回调函数时,发现定时器中断只会有一个回调函数,不同定时器中断触发后调用的是同一个函数,这对有时候想要在不同文件中写不同的定时器中断文件来说可能不太方便,如果有这方面需求,可按照以下方案配置。
在这里插入图片描述
1、在NVIC的Code generation中取消生成定时器2的中断服务函数,还是要使能定时器,生成代码,生成代码后还是要打开定时器中断。
在这里插入图片描述
2、在main.c中重新写定时器2的中断服务函数,记得清除中断服务函数标志位。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少年、潜行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值