HAL_TIM_IC_Start_IT()的效果是不是和HAL_TIM_IC_Start()加上HAL_NVIC_EnableIRQ(TIM8_CC_IRQn)效果相同
时间: 2023-08-05 13:03:10 浏览: 264
general_tim.zip_HAL TIM的用法_HAL库定时器_generaltim_计时器hal_通用定时器
不完全相同。
HAL_TIM_IC_Start_IT() 和 HAL_TIM_IC_Start() 都是用于启动定时器输入捕获(Input Capture)功能的函数,但是它们的区别在于是否使能输入捕获中断。
- HAL_TIM_IC_Start_IT():该函数用于启动定时器的输入捕获功能,并使能输入捕获的中断。这意味着在每次输入捕获事件发生时,会触发相应的中断服务程序(ISR),用户可以在ISR中处理输入捕获事件。
- HAL_TIM_IC_Start():该函数用于启动定时器的输入捕获功能,但不使能输入捕获的中断。这意味着输入捕获事件仅触发硬件操作,不会触发中断。用户需要通过其他方式(如轮询)检测输入捕获事件并进行相应的处理。
而 HAL_NVIC_EnableIRQ(TIM8_CC_IRQn) 是用来使能 TIM8_CC_IRQn 外部中断的函数。TIM8_CC_IRQn 表示与 TIM8 相关联的通道比较事件(capture/compare event)的外部中断。通过使能外部中断,当通道比较事件发生时,会触发相应的中断服务程序(ISR)。
因此,虽然 HAL_TIM_IC_Start() 结合 HAL_NVIC_EnableIRQ(TIM8_CC_IRQn) 可以实现类似于 HAL_TIM_IC_Start_IT() 的效果,但是它们的实现方式和调用方式有所不同。HAL_TIM_IC_Start_IT() 是通过函数调用来同时启动输入捕获功能并使能中断,而 HAL_TIM_IC_Start() 结合 HAL_NVIC_EnableIRQ() 则是分别调用两个函数来分别启动输入捕获功能和使能外部中断。
阅读全文