STM32F407请问下定时器3用的是外置的晶振,还是407内部时钟?

2019-07-20 15:06发布

根据STM32F407开发板自制电路板,工作灯频率慢了几倍,工作灯用的定时器3的时钟,请问下开发板上定时器3用的是外置的晶振,还是407内部时钟?

顺便请教下,有可能导致时钟变慢的原因有哪些。。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
youfishing
2019-07-21 03:28
zuozhongkai 发表于 2017-4-20 15:49
定时器肯定是用的内部时钟,看数据手册找一下定时器3是在APB1上还是APB2上。

void TIM3_Int_Init(u16 arr,u16 psc)
{
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);  ///使能TIM3时钟
       
        TIM_TimeBaseInitStructure.TIM_Prescaler=psc;  //定时器分频
        TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
        TIM_TimeBaseInitStructure.TIM_Period=arr;   //自动重装载值
        TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
       
        TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);
       
        TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //允许定时器3更新中断
        TIM_Cmd(TIM3,ENABLE); //使能定时器3
       
        NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn; //定时器3中断
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01; //抢占优先级1
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; //子优先级3
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);
       
}

//定时器3中断服务函数
void TIM3_IRQHandler(void)
{
        if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //溢出中断
        {
                lwip_localtime +=10; //加10
                ttt+=10;
                if(ttt%500==0)
                        LED0=!LED0;//工作灯闪的变慢了
               
                if(ttt==2000) //2秒
                {
                  //TIMErun();
                        IWDG_Feed();//喂狗
                        ttt=0;
                }       
        }
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  //清除中断标志位
}

请问一下,话说会不会我外部晶振焊的不好,导致时钟变慢了。。。。。。

一周热门 更多>