码迷,mamicode.com
首页 > 其他好文 > 详细

HAL库 定时器3 中断 翻转LED

时间:2020-04-11 09:35:57      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:清除   高级   区别   png   不用   span   过程   image   溢出   

  开启定时器3 实现每1s翻转LED,公式 Tout = (ARR+1)*(PSC+1)/TCLK

(1)ARR : 自动重装载值 / 计数周期;

(2)PSC : 分频系数 ;

(3)TCLK : 输入时钟 72M

技术图片

 

 

 

 

 

 

  • 定时器介绍:

SMT32F1系列共有8个定时器:(区别)
高级定时器(TIM1、TIM8); /16位 / 可产生DMA请求 / 有捕获 和 / 比较通道 / 有互补输出 / 可用于PWM电机控制
通用定时器(TIM2、TIM3、TIM4、TIM5); / 16位 / 无捕获
基本定时器(TIM6、TIM7). / 16位 / 无捕获

 

  1. cubeMX 开启 定时器3 

技术图片

  2. main.c中 加入

(1)   __HAL_TIM_CLEAR_IT(&htim3,TIM_IT_UPDATE); //清除TIM初始化过程中的 更新中断标志避免 一启动TIm就进去中断

(2)   HAL_TIM_Base_Start_IT(&htim3); //使能 TIM3的更新中断 并启动 定时器

技术图片

 

  3. 在tim.c中 设置 溢出时间 :Tout = (ARR+1)*(PSC+1)/TCLK

技术图片

 

 

 

 

   4. 在 tim.c 中 添加 TIM3 中断 回调函数

 技术图片

 

 

 

(ps:过程中 对 中断服务函数:【void TIM3_IRQHandler(void) 】重复定义导致编译失败,其实void TIM3_IRQHandler本身有自己不用写)

 

HAL库 定时器3 中断 翻转LED

标签:清除   高级   区别   png   不用   span   过程   image   溢出   

原文地址:https://www.cnblogs.com/oneme1world/p/12677517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!