【问题】:使用原子STM32F103最小系统板时,基于freeRTOS开发,使用定时器Timer3时发现,在中断加一句打印语句,程序持续进入中断,初始化设置的定时器周期都无效。
【原因】:
1)进一步查看程序,原子的timer.c文件中有一个ConfigureTimeForRunTimeStats函数,使用TIM3为FreeRTOS的时间统计提供时基,初步怀疑问题出现在此。
//初始化TIM3使其为FreeRTOS的时间统计提供时基
void ConfigureTimeForRunTimeStats(void)
{
//定时器3初始化,定时器时钟为72M,分频系数为72-1,所以定时器3的频率
//为72M/72=1M,自动重装载为50-1,那么定时器周期就是50us
FreeRTOSRunTimeTicks=0;
TIM3_Int_Init(50-1,72-1); //初始化TIM3
}
2)查找该函数,查看调用的地方:在开始任务调度函数中
所以TIMER3是被freeR