[mw_shl_code=c,true]void TIM1_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
void TIM1_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);//这里的由APB1改成APB2 TIM_TimeBaseStructure.TIM_Period = arr;
TIM_TimeBaseStructure.TIM_Prescaler =psc;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE );
NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn;//这里由TIM3_IRQn该成TIM1_UP_IRQn NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_Cmd(TIM1, ENABLE);
} void TIM1_UP_IRQHandler(void) //这是由 TIM3_IRQHandler 改成TIM1_UP_IRQHandler {
if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET)
{ LED0=~LED0; TIM_ClearITPendingBit(TIM1, TIM_IT_Update ); // LED1=!LED1; }
}[/mw_shl_code]
我将原子的实验 定时器中断实验 的TIM3改成TIM1,出现现象:LED0一直亮,没有灭。定时是500ms
我只改了上面标出来的那部分代码,不知道还有哪里要给或者添加的?
|