i有两个来自tim1ch1和tim4ch1的捕获中断,当i只使用tim1 ch1时,i可以使用if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)
,但如果i同时使用tim4ch1中断呢?可以使用以下格式吗?对不对?你能提醒我一下吗。我将无法尝试它作为软件,所以我想问专业人士关于这些类型的主题。
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) {
if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) {
if (htim->Instance == htim1.Instance) {
// to do sth
}
else if (htim->Instance == htim4.Instance) {
// to do sth
}
}
}
1条答案
按热度按时间2hh7jdfx1#
这似乎是一个非常奇怪的处理方式。ISR告诉您哪个计时器引发了中断。你不需要检查结构就能弄清楚。
你可能想要更像是:
这些“处理”部分中的每一个都可以测试哪个通道导致中断。如果您只启用了您关心的中断,那么可能没有什么需要检查的。