STM32
直播中

王芳

7年用户 1385经验值
私信 关注
[问答]

为什么STM32的外部晶振不起振呢

有源晶振和无源晶振的区别在哪?
为什么STM32的外部晶振不起振呢?

回帖(1)

袁声瑜

2021-10-26 10:58:12
  问题:
  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相当于电阻很小,直通。。。所以不起振。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分