在进行项目开发的时候有时候需要知道系统各个时钟的频率,可以使用以下两条语句:
① RCC_ClocksTypeDef get_rcc_clock;
头文件:stm32f4xx_rcc.h
功能:定义了一个RCC_ClocksTypeDef结构体类型的结构体get_rcc_clock,该结构体类型有四个成员:SYSCLK_Frequency、HCLK_Frequency、PCLK1_Frequency和PCLK2_Frequency。
typedef struct
{
uint32_t SYSCLK_Frequency; /*!< SYSCLK clock frequency expressed in Hz */
uint32_t HCLK_Frequency; /*!< HCLK clock frequency expressed in Hz */
uint32_t PCLK1_Frequency; /*!< PCLK1 clock frequency expressed in Hz */
uint32_t PCLK2_Frequency; /*!< PCLK2 clock frequency expressed in Hz */
}RCC_ClocksTypeDef;
② RCC_GetClocksFreq(&get_rcc_clock)
头文件:stm32f4xx_rcc.h
功能:获取四种时钟频率:SYSCLK、HCLK、PCLK1和PCLK2
程序编译后进行调试处理,进入调试画面运行至RCC_GetClocksFreq(&get_rcc_clock)后,在底部的"Call Stack + Locals"一栏就可以看到SYSCLK、HCLK、PCLK1和PCLK2对应的频率,如下图:
注意:这里默认是显示十六进制数的,需要对这些数据点击右键会出现"Hexadcimal Display"打勾,点击一下就可以切换到十进制数了。