嵌入式备忘录(一)STM32H7配置基本定时器中断

使用STM32CubeMX和keil进行配置

STM32CubeMX的配置

STM32H750VBT6的基本定时器有TIM6,TIM7。根据参考手册可以知道使用的是APB1的时钟总线,时钟设置如下
在这里插入图片描述
可知时钟频率为240MHz,回到引脚配置界面,选择TIM6,选择Activated
在这里插入图片描述
想要配置20ms的定时器中断,计算公式为Prescaler/240M*CounterPeriod=20ms
Prescaler设置为24000,算出CounterPeriod=2000,auto-reload preload设置为Enable使能自动重装,其他的保持默认设置
在这里插入图片描述
在NVIC中使能中断并设置优先级
在这里插入图片描述

点击GENERATE CODE生成keil工程

Keil工程

在tim.c中对TIM6的初始化函数

void MX_TIM6_Init(void)
{

  /* USER CODE BEGIN TIM6_Init 0 */

  /* USER CODE END TIM6_Init 0 */

  TIM_MasterConfigTypeDef sMasterConfig = {0};

  /* USER CODE BEGIN TIM6_Init 1 */

  /* USER CODE END TIM6_Init 1 */
  htim6.Instance = TIM6;
  htim6.Init.Prescaler = 24000;
  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim6.Init.Period = 2000;
  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
  {
    Error_Handler();
  }
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN TIM6_Init 2 */
	HAL_TIM_Base_Start_IT(&htim6);           /* 使能定时器x和定时器x更新中断 */
  /* USER CODE END TIM6_Init 2 */
}

在stm32h7xx_it.c中可以看到对tim6的中断处理函数

void TIM6_DAC_IRQHandler(void)
{
  /* USER CODE BEGIN TIM6_DAC_IRQn 0 */

  /* USER CODE END TIM6_DAC_IRQn 0 */
  HAL_TIM_IRQHandler(&htim6);
  /* USER CODE BEGIN TIM6_DAC_IRQn 1 */

  /* USER CODE END TIM6_DAC_IRQn 1 */
}

最后在定时器中断的回调函数中进行自己的处理代码

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance==TIM6)
	{
		//对tim6的定时器中断处理
	}
}

另外还有开启和关闭定时器的两个函数

HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)
  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值