當需要知道外設頻率的時候,調用下面的函數得到
/* Get PCLK1 frequency */
pclk1 = HAL_RCC_GetPCLK1Freq();
從上面的時鐘樹知道,外設時鐘爲 HCLK 除以 PPRE1分頻器
SystemCoreClock即HCLK在stm32f1xx.c 中被宏定義,在stm32f1xx.h中定義爲外部變量extern uint32_t SystemCoreClock; 以後在要使用此宏的c文件中只要包函stm32f1xx.h這個頭文件就可以了。
RCC->CFGR是 時鐘配置寄存器(RCC_CFGR),與上RCC_CFGR_PPRE1即得到以下的8 ,9 ,10位,再右移8位。
查手冊PPRE1是低速外設分頻器
const uint8_t APBPrescTable[8U] = {0, 0, 0, 0, 1, 2, 3, 4};
當PPRE1爲4即100的時候,分頻爲右移1位,即2分頻率。