最近用STM32F103 打开了定时器2 开定时器中断, 开启PA11的中断, 在PA11的中断里把定时器2关掉, void EXTI15_10_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line11) != RESET) { EXTI_ClearITPendingBit(EXTI_Line11); //清除标志 dis_time=TIM2_count; GPIO_ResetBits(GPIOB, GPIO_Pin_0); // RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,DISABLE); // TIM_Cmd(TIM2,DISABLE); //关定时器 // TIM2->CR1=0x00; //关闭定时器 TIM2_count=0; //完成一次后 计数清零 EXTI_11_flag=1; } } 不关定时器2 程序正常运行, 关闭就出错. 定时器如何关闭呢? |
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); /* 时钟使能 */
TIM_Cmd(TIM2,DISABLE);
这个不行, 我在上面说过了, 一执行就错误
你试过吗
TIM_Cmd(TIM2,DISABLE); //关定时器
这两句话写反了,,,你先把时钟关了后面的操作就起不了作用了,,,
把RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,DISABLE); 注掉, 只用TIM_Cmd(TIM2,DISABLE);也不行
会出错, 后来我又把TIM2的中断关了, TIM_Cmd(TIM2,DISABLE);就好使了