STM32定时器

定时器的工作原理:使用精准的时基,通过硬件的方式,实现定时功能,定时器的核心就是计数器。

定时器的分类:

1.基本定时器(TIM6~TIM7):没有输入输出通道,常用作石基,即定时功能。

2.通用定时器(TIM2-TIM5):具有多路独立通道,可用于输入捕获/输出比较,也可用作石基。

3.高级定时器(TIM1和TIM8):除剧本通用定时器的所有功能外,还具备带死区控制的互补信号输                                                   出,刹车输入等功能(可用于电机控制,数字电源设计等)。

通用定时器介绍:

1.16位向上/向下自动装载计数器。

2.16位可编程预分频器,计数器时钟频率的分频系数为1~65536

3.4个独立通道,这些通道可以作为:

        A.输入捕获

        B.输出比较

        C.PWM生成

        D.单脉冲模式输出

4.可使用外部信号控制定时器和定时器互连

5.发生如下事件时产生中断/DMA

        A.更新:计数器向上/向下溢出,计数器初始化(通过软件或者内部/外部触发)

        B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)

        C.输入捕获

        D.输出比较

        E.支持针对定位的增量(正交)编码器和霍尔传感器电路

        F.触发输入作为外部时钟或者按周期的电流管理

定时器计数模式:

STM32定时器_第1张图片

定时器溢出的时间计算公式:

其中TCLK是由

STM32定时器_第2张图片决定的。

 

下面是一个利用定时器中断的点灯案例:

我们在CubeMX中设置好500ms的定时之后,在程序中要重写更新中断回调函数:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)/
 {
	if(htim->Instance==TIM2)
	{
		 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);//
	}
 }

并在主函数中启动定时器:

    HAL_TIM_Base_Start_IT(&htim2);//我们这里使用的是定时器TIM2

你可能感兴趣的:(stm32,stm32,单片机,嵌入式硬件)