当前位置:   article > 正文

【STM32】利用定时器实现最基本的定时功能(HAL)_stm32f429bit6的定时器2在哪个总线上

stm32f429bit6的定时器2在哪个总线上

定时器简介

STM32F429单片机有许多定时器Timer,主要分成三类,基本定时器;通用定时器和高级定时器。三种类型的定时器功能由少变多,高级定时器包含了低级定时器的功能。

  • 基本定时器:TIM6、TIM7
  • 通用定时器:TIM2、TIM3、TIM4、TIM5、TIM9~TIM14
  • 高级定时器:TIM1,TIM8
    在这里插入图片描述

注:图中的接口接口时钟就是总线时钟。

定时器最基本的功能就是定时,三种类型的定时器都包含定时功能,今天只讲述如何利用HAL库方法实现利用定时功能点亮LED灯。

定时功能主要有三种方式:

  • 递增计数:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件
  • 递减计数:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。
  • 递增/减计数:计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。

此处引用Z小旋的图片:

在这里插入图片描述

定时时间计算公式为:

在这里插入图片描述

arr为计数值,psc为定时器分频系数,Tclk一般设定为最大工作频率,其中psc和arr可以自己设定,tclk为定时器时钟,也就是第一个图的最后一列。

举个栗子:

以stm32f429为例,假如想利用TIM2定时500ms,TIM2位于APB2总线上,其定时器时钟为90Mhz,为了方便计算,psc一般设定为Tclk*100-1,也就是8999,这样arr的设定值为定时时间*10-1,也就是499,单位为ms。

假如使用103单片机,定时100ms,那么arr=999(1000-1),psc=7199(7200-1),tclk=72M。注意单位Tout为ms,tclk为Mhz

利用定时器点亮LED

  1. 打开stm32Cubemx,创建新工程,芯片型号选择STM32F429IG

  2. 配置RCC为外部高速时钟(HSE)。
    在这里插入图片描述

  3. 配置定时器TIM2,选择时钟源为内部时钟,配置计数方式,arr和psc以及是否重装载,并使能中断。

在这里插入图片描述

在这里插入图片描述

Clock Source:选择时钟源(Internal Source)

Prescaler:PSC定时器分频系数 (17999 )

Counter Mode:计数模式( UP:递增计数)

Counter Period:自动重装载值(4999)

auto-reload preload:是否开启重装载(Enable)

只需设置上述四个选项即可,其余设置和本程序无关,保持默认即可。

  1. 设置时钟树
    在这里插入图片描述

选择外部时钟HSE 8MHz
PLL锁相环倍频180倍
系统时钟来源选择为PLL
设置APB1分频器为 /2
这时候定时器的时钟频率为90Mhz

  1. 配置GPIO口
    我的板子LED连接的端口是PF6,找到PF6,并设置output模式
    在这里插入图片描述
    配置GPIO口的相关参数
    在这里插入图片描述

设置输出电平,参照自己板子的电路图,我的是低电平点亮
设置输出模式
设置上/下拉
设置输出速度
设置用户标签

  1. 生成程序
    在这里插入图片描述
    设置工程名称
    设置路径
    选择编译器
    设置库函数版本

在这里插入图片描述

其余设置保持默认
点击GENERATE CODE生成代码

  1. 开启TIM2中断

在这里插入图片描述
HAL_TIM_Base_Start函数在stm32f4xx_hal_tim.h文件中

  1. 在TIM.c中添加中断回调函数
 /* Includes ------------------------------------------------------------------*/
#include "tim.h"

/* USER CODE BEGIN 0 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if (htim == (&htim2))
	HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_6);
}

/* USER CODE END 0 */
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

大功告成

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/739215
推荐阅读
相关标签
  

闽ICP备14008679号