[mw_shl_code=c,true]//高速内部时钟
void HSI_USERInit(void)
{
RCC->CFGR = 0x00000000; //启动内部时钟,并复位所有其他时钟
RCC->CR = 0x00000001;
while(BV(1) != (RCC->CR&BV(1)));
//设置内部总线(AHB)速度为系统时钟HCLK=SYSCLK,已经设置
//设置外部高速(APB2)设备时钟为HCLK,PCLK2=HCLK
RCC->CFGR |= BV(13);
//设置外部低速(APB1)设备时钟为HCLK/2,PCLK1=HCLK/2
RCC->CFGR |= BV(10);
//设置内部Flash延时周期,参考STM32的Flash参考手册,0-24,0个周期,24-48,1个周期,48-72M,2个周期
FLASH->ACR &= 0x00000038;
FLASH->ACR |= 0x00000002;
//设置内部高速时钟HSI/2为PLL时钟源,16倍PLL时钟输出
RCC->CFGR &= 0<<16;//PLLSRC = 0 HSI/2 作为PLL输入时钟源
RCC->CFGR |= (0x0f<<18);
//使能PLL时钟输出
RCC->CR |= BV(24);
//等待PLL时钟输出稳定
while(BV(25) != (RCC->CR&BV(25)));
//设置PLL输出为系统时钟
RCC->CFGR |= 0x00000002;
//等待系统时钟稳定
while(BV(3) != (RCC->CFGR&BV(3)));
}[/mw_shl_code]
为什么开不出来,检查了好多遍了0.0 |