关注两处:
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