新手入门
积分 19
金钱 19
注册时间 2019-5-12
在线时间 3 小时
1 金钱
贴出调试的程序
void TIM4_Config(unsigned short int Period,unsigned short int Prescaler)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
TIM_TimeBaseStructure.TIM_Prescaler = Prescaler; //ʱÖÓÔ¤·ÖƵ
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//ÏòÉϼÆÊý
TIM_TimeBaseStructure.TIM_Period = Period; //×Ô¶¯ÖØ×°Öµ
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //ʱÖÓ·ÖÆµ1
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);
TIM_ClearFlag(TIM4,TIM_FLAG_Update);
TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);
NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn ;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //ÇÀÕ¼ÓÅÏȼ¶2
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //ÏìÓ¦ÓÅÏȼ¶0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_Cmd(TIM4, ENABLE);
}
void TIM4_IRQHandler(void)
{
if(TIM_GetITStatus(TIM4,TIM_IT_Update) == SET)
{
switch(CurMode) //¸ù¾ÝÌâĿѡÔñº¯Êý
{
case 1: Mode_1(); break;
// case 2: Mode_2(); break;
// case 3: Mode_3(); break;
// case 4: Mode_4(); break;
// case 5: Mode_5(); break;
// case 6: Mode_6(); break;
default:break;
}
TIM_ClearITPendingBit(TIM4,TIM_IT_Update);
}
}
我来回答