用的原子个的mini板,本来定时的50us,出来确实250us。头都大了。
这是我的定时器程序:
void TIM1_Int_Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
TIM_DeInit(TIM1);
TIM_TimeBaseStructure.TIM_Period = 49;
TIM_TimeBaseStructure.TIM_Prescaler = 71;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //设置NVIC中断分组1: 1位抢占优先级,3位响应优先级
NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_ClearFlag(TIM1, TIM_FLAG_Update);
TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM1,ENABLE);
}
void TIM1_UP_IRQHandler(void)
{
if(TIM_GetITStatus(TIM1,TIM_IT_Update) !=RESET )
{
LED1 = !LED1;
TIM_ClearITPendingBit(TIM1,TIM_IT_Update);
}
}
附上我的程序,希望各位朋友能解决,我们共同学习!谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
低频定时时,配置这个与否,都无影响。
而且当这个值配置一次后,似乎后面去掉与否,定时器定时都恢复了正常;
同意 我刚刚也是这个问题 解决了已经
@note此参数仅对TIM1和TIM8有效。*/
这个是库函数版本的库函数tinm里面注释的
但是我亲测寄存器版本的定时器1 不加这句可以正常运行 搞不懂了
一周热门 更多>