假设定时器内部时钟为16MHz,(1)完成下面的注释。(2)可以定时的时间为( 10 )ms。
公式:
T=(arr+1)*(PSC+1)/Tck 其中TCK为时钟频率,PSC为时钟预分频系数,arr为自动重装载值
Tck=16MHZ
定时的时间=(799+1)*(99+1)/16=5000us=5ms
htim3.Instance = TIM3; //通用定时器3
htim3.Init.Prescaler = 799; //注释1(预分频系数为799)
htim3.Init.CounterMode = TIM_COUNTERMODE_UP; //注释2(向上计数器)
htim3.Init.Period = 99; //注释3(自动重载值为99)
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
STM32的TIM定时器分为三类:基本定时器、通用定时器和高级定时器。从分类来看就知道STM32的定时器功能是非常强大的,但是,功能强大了,软件配置定时器就相对复杂多了。很多初学者甚至工作了一段时间的人都不知道STM32最基本的计数原理。