STM32使用FreeRTOS时,为使用vTaskGetRunTimeStats()函数查看各任务运行时间,使用了基本定时器7作为时间基准。一开始把定时器7运行的函数HAL_TIM_Base_Start_IT(&htim7)放进HAL_TIM_Base_MspInit()这个函数中,就像下面这样
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_baseHandle->Instance==TIM7)
{
/* USER CODE BEGIN TIM7_MspInit 0 */
/* USER CODE END TIM7_MspInit 0 */
/* TIM7 clock enable */
__HAL_RCC_TIM7_CLK_ENABLE();
/* TIM7 interrupt Init */
HAL_NVIC_SetPriority(TIM7_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(TIM7_IRQn);
/* USER CODE BEGIN TIM7_MspInit 1 */
HAL_TIM_Base_Start_IT(&htim7); //使能更新中断并开启定时器
/* USER CODE END TIM7_MspInit 1 */
}
}
主程序是这样的
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes th