{ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4 , ENABLE); /* 开启定时器 */ TIM_DeInit(TIM4); //定时时间=((1+TIM_Prescaler )/72M)*(1+TIM_Period ) TIM_TimeBaseStructure.TIM_Period=(32-1); /* 自动重装载寄存器周期的值(计数值) */ /* 累计 TIM_Period个频率后产生一个更新或者中断 */ TIM_TimeBaseStructure.TIM_Prescaler= (1); /* 时钟预分频数 72M/72 */ TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; /* 采样分频 */ TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; /* 向上计数模式 */ TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); TIM_ClearFlag(TIM4, TIM_FLAG_Update); /* 清除溢出中断标志 */ TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE); /* 使能中断 */ TIM_Cmd(TIM4, ENABLE); /* 开启时钟 */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4 , DISABLE); /*先关闭等待使用*/ } 求助此为tim4的程序配置,当TIM_TimeBaseStructure.TIM_Prescaler 配置为 2 的时候 就会不出中断 中断 是在 程序需要的时候 才会去 打开 tim4 使能 |
您好,谢谢您的关注
是这样 TIM_TimeBaseStructure.TIM_Prescaler =1 的时候 我程序正常运行
但是 TIM_TimeBaseStructure.TIM_Prescaler = 2 的时候 程序就会跑不出tim4的中断函数
只修改这个值 程序其他地方是不会动到的
是的,修改一下 就会不出 中断 很奇怪
就是停在 tim4 跳出的 地方
就是停在 tim4 跳出的 地方