开启 tim 会立即进入中断

在开启 tim 前清理一下 TIM_FLAG_UPDATE 标记就可以解决立即进中断的问题

__HAL_TIM_CLEAR_FLAG(&htim17, TIM_FLAG_UPDATE);
HAL_TIM_Base_Start_IT(&htim17);

参考资料:
https://blog.csdn.net/Robotzzg/article/details/90712340

ARPE 标记的意思

启用这个标记后,写入ARR寄存器的值会被暂存,直到 TIM_FLAG_UPDATE 事件触发后真正写入。

参考资料:
https://blog.csdn.net/wowo004/article/details/100582953

单发模式

在初始化 tim 后可以追加单发模式初始化,单发模式,触发一次update则自动停止
HAL_TIM_Base_Init(&htim17)
HAL_TIM_OnePulse_Init(&htim17, TIM_OPMODE_SINGLE)

标签: none

添加新评论