TIM定时0.5s初始化-以及如何设置初始时间

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版权协议,转载请附上原文出处链接和本声明。