【保姆级 HAL 库学习定时器】

以下以 STM32 的 HAL 库为例,针对定时器(Timer)的初始化函数进行逐行详解,以定时器基本配置(TIM Base)为例:

示例代码(以 TIM6 为例)

TIM_HandleTypeDef htim6; // 定时器句柄

void MX_TIM6_Init(void)
{
  TIM_MasterConfigTypeDef sMasterConfig = {0};

  htim6.Instance = TIM6;                     // 选择定时器 TIM6
  htim6.Init.Prescaler = 7199;               // 预分频系数
  htim6.Init.CounterMode = TIM_COUNTERMODE_UP; // 计数模式:向上计数
  htim6.Init.Period = 9999;                  // 自动重装载值 (ARR)
  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; // 自动重载预装载使能/禁止
  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) 

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