stm32系统时钟配置,标准库v3.5

新芯片配置第一个工作就是要保证系统时钟是对的

1.虽然SystemInit()会在main之前被执行,但我们可以手动调用此函数,以利于我们跟踪时钟是否配置正确。此函数位于

2.SystemInit()下找到SetSysClock();

3.可以看到有很多个宏,如果你没去掉注释是跟踪不过去的,只能一个一个试,比如跟踪到SYSCLK_FREQ_72MHz,但你的系统时钟最高只能是36MHz,那就要如下修改,注释SYSCLK_FREQ_72MHz,去掉SYSCLK_FREQ_36MHz的注释

4.在主函数调用RCC_GetClocksFreq(&RCC_ClocksFreq);在此函数后打断点,观察Watch1窗口的数值是否是36MHz,如果是则OK。

 5.如换算成10进制还不是36MHz,则继续跟踪SetSysClock()->SetSysClockTo36(),发现函数里面有针对PLL倍频和分频设置,根据信号选择更改,CL 或者其他,库函数有个缺点就是CL默认外部的高速晶振是25M,其他是8M,当我们接12M时就要更改此文件了。

首先要在stm32f10x.h把HSE_VALUE改成实际晶振值,再在system_stm32f10x.c下计算PLL分频,配置好参数让它计算到36M。再按照步骤4查看是否对了。

6.目标结果

猜你喜欢

转载自www.cnblogs.com/ycpkbql/p/STM32.html