STM32 V3.5.0版本固件中的某个部分涉及RCC_GetClocksFreq()函数的一个小细节
发布时间
阅读量:
阅读量
/* Get HCLK prescaler */
tmp = RCC->CFGR & CFGR_HPRE_Set_Mask;
tmp = tmp >> 4;
presc = APBAHBPrescTable[tmp];
/* HCLK clock frequency */
RCC_Clocks->HCLK_Frequency = RCC_Clocks->SYSCLK_Frequency >> presc;
static __I uint8_t APBAHBPrescTable[16] = {0, 0, 0, 0, 1, 2, 3, 4, 1, 2, 3, 4, 6, 7, 8, 9};
根据STM32中文手册的说明,HPRE[3:0]位用于配置AHB预分频(AHB Prescaler),其对应位置为7至4位。通过软件将这些位设置为1或0,可以控制AHB时钟的预分频系数。具体设置如下:
当HPRE[3:0]为0xxx时,表示SYSCLK不分频;若设置为1000,则SYSCLK被2分频;若设置为1100,则SYSCLK被64分频;当设置为1001时,SYSCLK被4分频;而1101则对应于SYSC
全部评论 (0)
还没有任何评论哟~
