STM32CubeMX生成代码学习笔记(二)普通定时器中断配置

普通定时器中断进行配置的步骤

  1. CubeMX配置定时器

时钟使用内部时钟,TIM2在APB2总线上,频率为64M,设定预分频系数6399和自动装载值99,则更新周期为1/(64000000/(6399+1))*(99+1)=10(ms)
在这里插入图片描述

  1. 配置时钟,本次使用系统内部时钟
    主频使用64M
  2. 配置定时器中断优先级
    在这里插入图片描述
  3. 生成代码后打开工程文件
    在主循环while()前的用户代码处增加定时器中断开启代码:
  /* USER CODE BEGIN 2 */
	HAL_TIM_Base_Start_IT(&htim2);
  /* USER CODE END 2 */
  1. 在stm32f1xx_it.c中的对应定时器中断服务函数中找到:
void TIM2_IRQHandler(void)
{
  /* USER CODE BEGIN TIM2_IRQn 0 */
	
  /* USER CODE END TIM2_IRQn 0 */
  HAL_TIM_IRQHandler(&htim2);
  /* USER CODE BEGIN TIM2_IRQn 1 */
	
  /* USER CODE END TIM2_IRQn 1 */
}

该函数为TIM2中断服务函数,TIM2所有类型的中断都会进入这个函数,并通过
HAL_TIM_IRQHandler(&htim2)HAL库定时器中断服务函数,来判断中断的类型以及清除中断标志位。
void TIM2_IRQHandler(void)后面的用户代码区域添加周期中断回调函数:需要在其中判断是哪个定时器。

/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(TIM2==htim->Instance)//判断定时器
	{
		if(Times_10ms_sign<6000)
			Times_10ms_sign++;
		else
			Times_10ms_sign	=	0;
		if(!(Times_10ms_sign%50))
		HAL_GPIO_TogglePin(MCU_LED_GPIO_Port,MCU_LED_Pin);
	}
}
/* USER CODE END 1 */

之后编译程序烧写程序就能看到LED按照需求频闪了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

食熊鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值
>