TIM定时0.5S初始化:全部,有启动
void TIM_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_BaseInitStructure;
/* 中断源选择 */
TIM_DeInit(TIM2); //重新将TIM2设置为缺省值
TIM_InternalClockConfig(TIM2); //采用内部时钟给TIM2提供时钟源(TIMx_SMCR)
/* 时基初始化 */
TIM_BaseInitStructure.TIM_Prescaler = 36000-1; //预分频数值,装入预分频器(TIMx_PSC),72000000/36000=2000Hz
TIM_BaseInitStructure.TIM_Period = 1000-1; //预装载值,装入自动重装载寄存器(TIMx_ARR),从0计数至1000后,产生中断信号。累积0.5s
TIM_BaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //计数器向上计数、边沿对齐模式(TIMx_CR1)
TIM_TimeBaseInit(TIM2, &TIM_BaseInitStructure); //初始化定时器
TIM_ARRPreloadConfig(TIM2, ENABLE); //使能TIM2重载寄存器ARR(TIMx_CR1)
TIM_UpdateRequestConfig(TIM2, TIM_UpdateSource_Regular); // 设置更新请求源只在计数器上溢或下溢时产生中断(TIMx_CR1)
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); // TIM2的上溢或下溢中断使能(TIMx_DIER)
TIM_Cmd(TIM2, ENABLE); // TIM2启动计数(TIMx_CR1)
}
设置初始化时间是通过:对于72M的时钟
此处的36000,以及1000是上面代码中的TIM_BaseInitStructure.TIM_Prescaler,TIM_BaseInitStructure.TIM_Period+1,可以通过更改这两个参数的值,来更改初始化时间的设置
版权声明:本文为qq_44652559原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。