STM32外部晶振不起振

芯片:STM32F429
开发平台:Keil
问题:
STM32外部晶振不起振,选择了内部16MHZ,从而导致延时函数、波特率、定时器等等有问题。

有源晶振和无源晶振的区别

  • 有源晶振一般4个脚,一个电源,一个接地,一个信号输出端,一个NC(空脚)。有个点标记的为1脚,按逆时针(管脚向下)分别为2、3、4。
  • 无源晶振有2个引脚,需要借助于外部的时钟电路(接到主IC内部的震荡电路)才能产生振荡信号,自身无法振荡.

单片机外部晶振接的是无源晶振,因此必须首先烧写程序进去,配置好相应的寄存器,晶振才会起振。如果没有烧写程序的新单片机(未配置寄存器)则不会起振。
在这里插入图片描述

由于我烧写过程序,并且程序在跑,只是时钟不对。因此进入DEBUG中查看,

RCC_ClocksTypeDef get_rcc_clock;
RCC_GetClocksFreq(&get_rcc_clock);

通过以上函数获取系统时钟:
在这里插入图片描述
PS:这个是正确的贴图,错误的时候Sysclk = 16Mhz.
然后,单步调试,发现RCC->CR寄存器的HSERDY标志未置1。也就是说,外部高速时钟未就绪。卡死在了while(1);
在这里插入图片描述

后面测量时钟的外围电路:
在这里插入图片描述
R52电阻本应为10M.测量发现是30R.(PS:汗颜。。)
替换为10M --> 上电,正常。。。
PS: 该电阻也可以不用焊接,30R相当于电阻很小,直通。。。所以不起振。。

  • 13
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值