关注两处:
1、stm32f4xx_hal_conf.h,外部晶振频率HSE宏定义
2、drv_clk.c,system_clock_config函数
1、外部晶振频率HSE宏定义
根据实际外部晶振的频率去定义,使用的是8MHz;

2、system_clock_config
开启HSE,配置PLL。
公式:SYSCLK=HSE/M*N/P.
代入HSE=8,M=8,N=336,P=2,得到SYSCLK=8/8*336/2=168MHz.

P.S.没有使用target_freq_mhz,因为参数名字词不达意,原来内部HSI=16MHz时可这样写;
3、验证
3.1、clock_information();

一开始没有打印,将rtdbg改成ulog那三句(名字、等级、头文件)。
3.2、事实验证
使用rt_thread_delay(1000),隔1s打印一条语句,根据串口自带的时间戳看时间对不对。

4、扩展_工程中时钟配置的调用层次
rt_hw_board_init——→hw_board_init——→clk_init——→system_clock_config



本文详细介绍了STM32F4xx中如何通过外部晶振HSE的8MHz频率配置系统时钟SYSCLK,利用PLL进行计算,以及通过clock_information()函数验证和工程调用层次。作者还提到使用rt_thread_delay进行时间校准。
653

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



