首先说下一下stm32芯片的启动过程: 打开 startup_stm32f10x_xx.s 文件可以发现系统是先执行SystemInit函数再执行main主函数的
再打开SystemInit函数:函数前面是对RCC相关寄存器的Reset 在函数倒数有个 SetSysClock() 它是对系统时钟的初始化 再打开SetSysClock() 函数:
因为我们前面宏定义是 defined SYSCLK_FREQ_72MHz 因此这里执行 SetSysClockTo72()函数(PS如果要改系统的时钟 更改这里的宏 即可)

STM32F107芯片因其USB OTG功能,常使用25MHz外部晶振,而STM32F103则常见8MHz晶振。在系统启动过程中,通过SetSysClockTo72()函数配置时钟,STM32F107的HSE_VALUE需设为25000000以保证正确工作,而STM32F103则使用9倍频达到72MHz。时钟配置涉及到SYSCLK、HCLK、PCLK2和PCLK1的关系,不同型号的宏定义也有所不同。
最低0.47元/天 解锁文章
820

被折叠的 条评论
为什么被折叠?



