原理框图

代码
cubeMX配置
TIM2,TIM3

代码展示
main(while)
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2, GPIO_PIN_RESET);char buff[20];char buff1[20];char buff2[20];extern TIM_HandleTypeDef htim2;extern TIM_HandleTypeDef htim3;extern uint32_t fre1;extern uint32_t fre2;LCD_Init();LCD_Clear(Black);LCD_SetBackColor(Black);LCD_SetTextColor(White);HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1);while (1){sprintf(buff," fre ");LCD_DisplayStringLine(Line1,(uint8_t *)buff);sprintf(buff1," fre1_R40=%d",fre1);LCD_DisplayStringLine(Line2,(uint8_t *)buff1);sprintf(buff2," fre2_R39=%d",fre2);LCD_DisplayStringLine(Line3,(uint8_t *)buff2);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}
中断函数
uint32_t fre1,capture1;
uint32_t fre2,capture2;
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim){if(htim->Instance==TIM2){capture1=TIM2->CCR1;TIM2->CNT=0;fre1=80000000/800/capture1;}if(htim->Instance==TIM3){capture2=TIM3->CCR1;TIM3->CNT=0;fre2=80000000/800/capture2;}
}