void TIM2_IRQHandler(void) { if(TIM_GetITStatus(TIM2,TIM_IT_CC2) != RESET&&n==0)//µÚÒ»¸öÉÏÉýÑØ { num=TIM2->CCR2;//¼Ç¼µÚÒ»´Î²¶×½±È½Ï¼Ä´æÆ÷Öµ n++; } if(TIM_GetITStatus(TIM2,TIM_IT_CC2) != RESET&&n==1)//µÚ¶þ¸öÉÏÉýÑØ { num1=TIM2->CCR2;//¼Ç¼µÚ¶þ´Î²¶×½±È½Ï¼Ä´æÆ÷Öµ n=0;//nÇåÁã if(num-num1>50000) sum=65535-num+num1; else sum=num1-num; }//·ÀÖ¹Òç³ö }
时间: 2024-03-30 14:38:34 浏览: 178
STM32_TIM3_PWM.rar_STM32 TIM3_STM32 TIM3_stm32pwm_原子开发板_战舰开发板
这是一个 STM32 的定时器中断处理函数,主要是处理 TIM2 的比较捕获中断。在第一次进入中断时,记录捕获的数值 num,并将 n 加 1;第二次进入中断时,记录捕获的数值 num1,并将 n 重置为 0。最后,根据 num 和 num1 的数值差计算出 sum 的值。其中,num 和 num1 的数值差大于 50000 时,需要对 sum 进行特殊处理。
阅读全文