STM32 Cubemx 配置中断定时器定时0.5mS

配置定时器是使用单片机必备技能,下面讲解使用Cubemx配置定时时间为0.5ms的中断定时器。
1、配置时钟
STM32 Cubemx 配置中断定时器定时0.5mS_第1张图片
2、打开定时器
内部时钟设置为不分频(CKD),则CK_PSC的时钟频率等于APB1的时钟频率2MHz,即2000 000Hz。若要定时时间为0.5s,则即可设置200分频(预分频器寄存器 (TIMx_PSC)的值为200-1),定时器的时钟CK_CNT的频率为10000Hz.则自动重载寄存器 (TIMx_ARR)设置为10000-1即定时为0.5s。TRGO为触发输出,可以触发内部ADC/DAC,这里我们没有用到这个功能,参数为默认设置。
STM32 Cubemx 配置中断定时器定时0.5mS_第2张图片

定时器有如下三种计数模式
递增计数模式:计数器从 0 计数到自动重载值,然后重新从 0 开始计数并生成计数器上溢事件。
递减计数模式:计数器从自动重载值开始递减到 0,然后重新从自动重载值开始计数并生成计数器下溢事件。
中心对齐模式:计数器从 0 开始计数到自动重载值 – 1 ,生成计数器上溢事件;然后从自动重载值开始向下计数到 1 并生成计数器下溢事件。之后从0 开始重新计数。

3、使能定时器中断
STM32 Cubemx 配置中断定时器定时0.5mS_第3张图片

4、生成项目
STM32 Cubemx 配置中断定时器定时0.5mS_第4张图片
STM32 Cubemx 配置中断定时器定时0.5mS_第5张图片
4、生成KEIL编译器程序
STM32 Cubemx 配置中断定时器定时0.5mS_第6张图片

5、编译程序,并编写写定时器中断函数

HAL_TIM_Base_Start_IT(&htim2);//打开定时器
HAL_TIM_Base_Stop_IT(&htim2);//关闭定时器

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  if (htim == (&htim2))
    { 
      
      //定时器执行程序
      
    }
  
}

你可能感兴趣的:(单片机)