173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

stm32外部晶振启动延时

keros@mark 2023-03-19 资讯中心

关于STM32外部晶振LSE不起振的问题

1.

STM32f103有内部晶振。刚刚上电时,所有Clock都是源于内部晶振,所以当片内没有程序或内部程序没有使能外部晶振时,外部晶振是不会起振的。2.

STM32f103有内部复位电路,只有当检测到外部电压大于电压阀值时才会启动。因为需要检测外部电压,所以模拟Ref/VDDA/VSSA不能开路,做实验是可以将Ref/VDDA与3.3V链接,VSSA与GND链接。3.

串口连接时,要记得正确配置好Boot0和Boot1引脚的电平。4.

Jlink链接时,要注意是JTAG模式还是SWD模式。(一般5个脚的,包含3.3V和GND的是SWD模式;引脚多的是JTAG模式。

stm32外部晶振由8m换成12m系统延时函数如何更改

下面我们就通过简单的三个步骤就可以让你随意的使用4—16MHz之内任何频点的晶振,我们以STM32F10x_StdPeriph_Lib_V3.4.0为例说明。 第一步,打开stm32f10x.h,将

#define HSE_VALUE ((uint32_t)8000000) 修改为:

#define HSE_VALUE ((uint32_t)12000000)

第二步,打开system_stm32f10x.c,修改PLL参数,将

RCC-CFGR = (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));

RCC-CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9); 修改为:

RCC-CFGR = (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));

RCC-CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6); 至此,原文件已经修改完成,如果你想将主频修改至其他频率,请自行修改。但是,到现在,如果您直接编译调试的话,就会出现上文所说的USART的波特率不正确,Systick走时不准等问题,原因就是我们需要进行第三部的修改,这个修改不是在原文件中,而是在编译环境中。我们已Keil MDK为例说明。

第三步,打开你已经建立的STM32工程,选择Projects-〉Options for target ***,找到Target标签,你会发现,外接的晶振默认还是8MHz,我们将外接的晶振参数修改为12MHz,确定保存,再编译,调试,你就会发现,所有的参数都回归的正常轨道,设置波特率为9600,它也不会跑到14400,设置Systick为1ms中断,它不会1.5ms中断。

stm32的晶振为什么都是8M的,用4M或者16M的有什么不一样嘛?

8M 4M 16M的区别是倍频器和锁相环的倍数选择会不同

stm32给出的最高频率为72M

它内部有时钟树

经过倍频器和分频器等可以选择最终的时钟频率

stm32上电启动运行很慢,比直接复位慢多了,是外部时钟没稳定还是其他什么原因

可能是你启动电路有问题,stm32如果启动时电压太低,系统运行就会很慢。

什么叫做外部高速晶振启动超时?

我们平常讨论的晶振,实际上应该称作石英晶体谐振器,只是晶振电路的一部分,当然是主要部分,但不是全部。振荡电路本身是一个正反馈放大电路,石英晶体在其中主要起选频的作用。

晶振电路本身是一个振荡电路,振荡电路都是需要启动时间的,从加电开始到振荡信号稳定的时间。不同的振荡电路需要的时间不同,晶体振荡电路的启动时间尤其要长一些,所以启动振荡电路后需要等一段时间,这个时间在STM32的启动代码中就是HSE_STARTUP_TIMEOUT。

本文标签:stm32外部晶振启动延时

产品列表
产品封装
友情链接