OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7751|回复: 6

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

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-1-19
在线时间
8 小时
发表于 2017-4-20 15:42:46 | 显示全部楼层 |阅读模式
10金钱
根据STM32F407开发板自制电路板,工作灯频率慢了几倍,工作灯用的定时器3的时钟,请问下开发板上定时器3用的是外置的晶振,还是407内部时钟?

顺便请教下,有可能导致时钟变慢的原因有哪些。。。。。

最佳答案

查看完整内容[请看2#楼]

用镊子短接外部晶振的两个脚,如果灯还闪,说明用的内部晶振,否则是外部。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-4-20 15:42:47 | 显示全部楼层
用镊子短接外部晶振的两个脚,如果灯还闪,说明用的内部晶振,否则是外部。
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-4-20 15:49:12 | 显示全部楼层
定时器肯定是用的内部时钟,看数据手册找一下定时器3是在APB1上还是APB2上。
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-1-19
在线时间
8 小时
 楼主| 发表于 2017-4-20 16:03:52 | 显示全部楼层
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);  //清除中断标志位
}

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

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-1-19
在线时间
8 小时
 楼主| 发表于 2017-4-20 16:06:54 | 显示全部楼层
对了,我主芯片焊成了F407ZET6,开发板上的是F407ZGT6。。。。。手册上看了下,好像就是储存有区别,不知道有没有别的影响???
回复

使用道具 举报

4

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
266
金钱
266
注册时间
2016-7-29
在线时间
84 小时
发表于 2017-4-21 14:45:35 | 显示全部楼层
时间频率不对,你要看计数器和分频配置。
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-1-19
在线时间
8 小时
 楼主| 发表于 2017-4-21 15:50:07 | 显示全部楼层
多谢原子哥,短接后发现是8M的晶振没起来,一点反应都木有;而开发板上是有反应的。。。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 01:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表