STM32定时器

it2025-10-26  7

/*****************************************************************************初始化定时器******************************************************************************/void TIM3_Int_Init(u16 arr,u16 psc){ TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); ///ʹÄÜTIM3ʱÖÓ

TIM_TimeBaseInitStructure.TIM_Period = arr; //×Ô¶¯ÖØ×°ÔØÖµ TIM_TimeBaseInitStructure.TIM_Prescaler= psc; //¶¨Ê±Æ÷·ÖƵ TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //ÏòÉϼÆÊýģʽ TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;

TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);//³õʼ»¯TIM3

TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //ÔÊÐí¶¨Ê±Æ÷3¸üÐÂÖÐ¶Ï TIM_Cmd(TIM3,ENABLE); //ʹÄܶ¨Ê±Æ÷3

NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn; //¶¨Ê±Æ÷3ÖÐ¶Ï NVIC_InitStructure.NVIC_IRQChannelPriority=0x00; //ÇÀÕ¼ÓÅÏȼ¶1 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);}

/*****************************************************************************定时器三服务函数******************************************************************************/void TIM3_IRQHandler(void){ if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //Òç³öÖÐ¶Ï { RE_LED1;//DS1·­×ª } TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //Çå³ýÖжϱê־λ}

对于有多少中断的直接搜索 TIM3_IRQn 在STM32f0xx.里面就有介绍;

初始化定时器引脚的结构体TIM_TimeBaseInit在 STM32f0xx——tim里面;

转载于:https://www.cnblogs.com/luckytimor/p/5403136.html

相关资源:stm32定时器计数实例
最新回复(0)