TIM基本定时器

基本定时器功能

基本定时器主要两个功能,第一就是基本定时功能,生成时基,第二就是专门用于驱动数模转换器(DAC)。

基本定时器代码

标准库函数对定时器外设建立了四个初始化结构体,基本定时器只用到其中一个即TIM_TimeBaseInitTypeDef,该结构体成员用于设置定时器基本工作参数,并由定时器基本初始化配置函数 TIM_TimeBaseInit 调用。

模式配置函数

 void TIM_Mode_Config(void)
{
	 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
	 
	 // 开启 TIMx_CLK,x[6,7]
	 RCC_APB1PeriphClockCmd(BASIC_TIM_CLK, ENABLE);
	 
	 /* 累计 TIM_Period 个后产生一个更新或者中断*/
	 //当定时器从 0 计数到 4999,即为 5000 次,为一个定时周期
	 TIM_TimeBaseStructure.TIM_Period = 5000-1;
	 
	 //定时器时钟源 TIMxCLK = 2 * PCLK1
	 // PCLK1 = HCLK / 4
	 // => TIMxCLK=HCLK/2=SystemCoreClock/2=90MHz
	 // 设定定时器频率为=TIMxCLK/(TIM_Prescaler+1)=10000Hz
	 TIM_TimeBaseStructure.TIM_Prescaler = 9000-1;
	 
	 // 初始化定时器 TIMx, x[2,3,4,5]
	 TIM_TimeBaseInit(BASIC_TIM, &TIM_TimeBaseStructure);
	 
	 
	 // 清除定时器更新中断标志位
	 TIM_ClearFlag(BASIC_TIM, TIM_FLAG_Update);
	 
	 // 开启定时器更新中断
	 TIM_ITConfig(BASIC_TIM,TIM_IT_Update,ENABLE);
	 
	 // 使能定时器
	 TIM_Cmd(BASIC_TIM, ENABLE);
}

中断函数

void TIM6_DAC_IRQHandler(void)

查看与清除中断标志位函数

TIM_ClearITPendingBit(BASIC_TIM , TIM_IT_Update); 
 TIM_GetITStatus( BASIC_TIM, TIM_IT_Update) 

定时功能编程总结

根据定时间配置好模式配置函数,使能nvic中断请求,进入中断函数的编写,在中断函数中写好中断处理内容,最后清0标志。

你可能感兴趣的:(stm32学习笔记)