各位前辈,本人初学STM32,实验室有块板子,上面是stm32f107芯片的,时钟是25M,我根据手册说明,想通过设置寄存器得到72M系统时钟,以下是我的程序: void MYRCC_Init(void) { MYRCC_DeInit(); RCC->CR|=1<<16; //外部高速时钟使能 HSION while(!RCC->CR>>17);//等待外部时钟就绪 RCC->CFGR2 |=4<<4;//预分频2进行5分频 RCC->CFGR2 |=0x0E<<8;//PLL2倍频16倍 RCC->CR|=1<<26;//PLL2倍频开 while(!(RCC->CR>>27));//等待PLL2锁定 RCC->CFGR2 |=1<<16;//PLL2作为预分频1的时钟源 RCC->CFGR2 |=9;//预分频1进行10倍分频 RCC->CFGR|=1<<16;//预分频11输出作为PLL输入时钟 RCC->CFGR|=7<<18;//PLL1倍频9倍 RCC->CR|=1<<24;//PLL1倍频开 while(!(RCC->CR>>25));//等待PLL1锁定 RCC->CFGR|=2<<1;//选择PLL输出作为系统时钟源 } 具体步骤: HSE(25MHZ)->PREDIV2(5分频)——5MHZ——>PLL2MUL(16倍频)——80MHZ——>PREDIV1SCR(选择PLL2)——80MHZ——>PREDIV1(10分频)——8MHZ——>PLLSCR(PREDIV1输入)——8MHZ——>PLLMUL(9倍频)——72MHZ——>SW(选择PLL)——SYSCLK(72MHZ).
但在程序编译的时候出现错误编译不过,错误提示如下: struct "<unnamed>" has no field "CFGR2" 请求前辈指导,感谢!
|