HAL_TIM_Base_Start_IT
HAL_TIM_Base_Start_IT
这两个中断开启函数使用时会立即进入一次中断回调
HAL_TIM_Base_Start_IT(&htim2);//即使下一行加上HAL_TIM_Base_stop_IT也触发
base是开启定时器计数中断
HAL_TIM_IC_Start_IT(&htim1, TIM_CHANNEL_1);
ic是开启定时器输入捕获中断
htim:指向TIM_HandleTypeDef结构体的指针,包含了定时器的实例和配置信息。
创建一个TIM_HandleTypeDef结构体的变量。
初始化结构体的成员,特别是Instance和Init成员。
调用HAL库提供的定时器初始化函数,并将TIM_HandleTypeDef结构体的地址作为参数传入。
tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
{
__HAL_TIM_ENABLE(htim);
}
该段代码根据定时器的类型(主定时器或从定时器)来使能定时器。
如果是从定时器,会进一步判断是否处于触发模式,并根据触发模式的使能状态来决定是否使能定时器。
如果是主定时器,直接使能定时器。