/* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
大致意思我知道,选择HSE时钟源,再选择9倍频,变成72MHZ,下面对CFGR寄存器进行配置:
具体如下:
#define RCC_CFGR_PLLSRC ((uint32_t)0x00010000) /*!< PLL entry clock source */
#define RCC_CFGR_PLLXTPRE ((uint32_t)0x00020000) /*!< HSE divider for PLL entry */
#define RCC_CFGR_PLLMULL ((uint32_t)0x003C0000) /*!< PLLMUL[3:0] bits (PLL multiplication factor) */
#define RCC_CFGR_PLLSRC_HSE ((uint32_t)0x00010000) /*!< HSE clock selected as PLL entry clock source */
#define RCC_CFGR_PLLMULL9 ((uint32_t)0x001C0000) /*!< PLL input clock*9 */
第一步我的计算结果是:
0xFFC0FFFF
第二步计算结果是:
0X00D00000 位20-位23都是1101
从下面怎么看是选择HSE时钟源,再选择9倍频,变成72MHZ?
第一步我的计算结果是: 0x00000000
第二步计算结果是: 0X00D00000 位20-位23都是1101
按照那个CFGR寄存器 位1:0应该是01 ,按照第一个图还要设置这两个的倍频数 PLLXTPRE PLLMUL,但是我不知道HSE这个时钟源的频率。计算的结果完全不对。
第一步我的计算结果是: 0x00000000
第二步计算结果是: 0X00D00000 位20-位23都是1101
按照那个CFGR寄存器 位1:0应该是01 ,按照第一个图还要设置这两个的倍频数 PLLXTPRE PLLMUL,但是我不知道HSE这个时钟源的频率。计算的结果完全不对。
HSE就是你外部晶振的频率,必须知道。
一周热门 更多>