嵌入式-STM32-定时器原理与操作

常见的定时器资源

  1. 系统滴答定时器,SysTick
  2. 看门狗定时器,WatchDog
  3. 实时时钟,RTC
  4. 基本定时器,TIM6,TIM7
  5. 通用定时器,TIM2、TIM3、TIM4、TIM5
  6. 高级定时器,TIM1、TIM8

SysTick是集成在CortexM3内核当中的定时器,他不属于芯片商的外设,属于基本的系统定时器。主要目的是给RTOS提供时钟节拍做时间准备。

通用定时器在基本定时器的基础上实现输出比较、输入捕获、PWM生成、单脉冲模式输出等功能。

STM32通用定时器知识点
STM32通用定时器是通过可编程预分频器驱动的16位自动重装主计数器构成,可以对内部时钟或触发源、外部时钟或触发源进行计数。

通用定时器的工作原理
首先,定时器的时钟信号送入16位的可编程预分频器,Prescaler中,其范围为0~65535.其次,待预分频器溢出后会向16位的主计数器,Counter Period发出一个脉冲信号。预分频器与主计数器大小不一定。
预分频器的本质是一个加法计数器,预分配系数实际上就是加法计数器的溢出值。
定时时间计算
在这里插入图片描述
STM32CubeMx关于TIM定时器的配置:

  1. 先选择配置需要的TIM定时器,再将时钟来源改为内部时钟。再内容中配置预分频器和主计数器的值。时钟树按要求设置,例如32MHZ只需要将HCLK设为32即可,系统会自动配置。
  2. 每个定时器,NVIC都一定要选择使能。与输入中断一样。
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
关于CLION对定时器操作

  1. 先在stm32f1xx_it.c文件中找到有关对应定时器TIM的配置,类似void TIM2_IRQHandler(void)。
  2. 跳转内部HAL_TIM_IRQHandler语句,在跳转后的stm32f1xx_hal_tim.c对应函数中找到时间回调函数,在main.c中重写。void HAL_TIM_PeriodElapsedCallback(htim)。
  3. 找到激活函数,调用。在stm32f1xx_hal_tim.c中,找到HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)函数重写HAL_TIM_Base_Start_IT(&htim2),此处采用指针&,对应定时器TIM2在tim.C中已有定义。
    在这里插入图片描述

在这里插入图片描述
定时器的参数,在tim.C中,包含分频器,主计数器,模式等参数
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值