初级会员

- 积分
- 141
- 金钱
- 141
- 注册时间
- 2016-9-12
- 在线时间
- 51 小时
|

楼主 |
发表于 2022-8-24 19:21:32
|
显示全部楼层
void TIM2_Int_Init(uint16_t arr,uint8_t psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,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(TIM2,&TIM_TimeBaseInitStructure);//初始化TIM3
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); //允许定时器3更新中断
TIM_Cmd(TIM2,ENABLE); //使能定时器2
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn; //定时器2中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01; //抢占优先级1
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; //子优先级3
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void TIM2_IRQHandler(void)
{
static uint8_t sec=0;
static uint16_t sec1=0;
static uint8_t run_times=0;
if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET) //溢出中断
{
sec1++;
//
// if(sec>0&&sec<=1)
// {
// //
// sec=0;
//
// sec1++;
//
// }
if(sec1>0&&sec1<=20)
{
GPIO_SetBits(GPIOC,GPIO_Pin_7);
GPIO_ResetBits(GPIOD,GPIO_Pin_14);
}
if(sec1>20&&sec1<=100)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_7);
GPIO_ResetBits(GPIOD,GPIO_Pin_14);
}
if(sec1>100&&sec1<200)
{
{
GPIO_SetBits(GPIOD,GPIO_Pin_14);
GPIO_ResetBits(GPIOC,GPIO_Pin_7);
}
}
if(sec1>=200&&sec1<300)
{
GPIO_ResetBits(GPIOD,GPIO_Pin_14);
GPIO_ResetBits(GPIOC,GPIO_Pin_7);
}
if(sec1>300)
{
sec1=0;
}
// else if(sec1>5&&sec1<=8)
// {
//
//
// GPIO_ResetBits(GPIOC,GPIO_Pin_7);
//
// }
//
//
//
// else if(sec1>=8&&sec1<15)
// {
// GPIO_ResetBits(GPIOC,GPIO_Pin_7);
//
//
//
// }
// if(sec1>1)
// {
// //run_times++;
// sec1=0;
// GPIO_ResetBits(GPIOC,GPIO_Pin_7);
// //GPIO_ResetBits(GPIOD,GPIO_Pin_14);
// }
//
//
// //USART_Cmd(USART2, ENABLE);
// // }
//// if(run_times>=count)
//// {
//// run_times=0;
//// //sec=0;
//// TIM_Cmd(TIM2,DISABLE);
//// //使能串口1
//// TIM_Cmd(TIM5, ENABLE);
////
// }
}
TIM_ClearITPendingBit(TIM2,TIM_IT_Update); //清除中断标志位
}
|
|