STM32时钟库函数RCC

void RCC_DeInit(void){RCC->CR |= (uint32_t)0x00000001; //开启内部8MHz时钟#ifndef STM32F10X_CL //STM32F10X_CL指的是STM32互联系列微处理器 RCC->CFGR &= (uint32_t)0xF8FF0000; //其它类型处理器的CFGR寄存器中27-31位是保留位,24-26为MCO位#else //而互联型处理器的CFGR寄存器中,,28-31位是保留位,24-27位属MCO RCC->CFGR &= (uint32_t)0xF0FF0000; //初始化CFGR寄存器,详见注释第1条#endif RCC->CR &= (uint32_t)0xFEF6FFFF; //初始化CR寄存器,详见注释第2条RCC->CR &= (uint32_t)0xFFFBFFFF; //位18=0,HSE没有旁路,只有在HSE关闭时才可以设置 RCC->CFGR &= (uint32_t)0xFF80FFFF; //设置CFGR寄存器,详见注释第3条#ifdef STM32F10X_CL //互联型微控制器的设置 RCC->CR &= (uint32_t)0xEBFFFFFF;RCC->CIR = 0x00FF0000;RCC->CFGR2 = 0x00000000;#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL)RCC->CIR = 0x009F0000; //初始化CIR时钟中断寄存器,详见注释第4条RCC->CFGR2 = 0x00000000; #elseRCC->CIR = 0x009F0000;#endif}注释:1、位26(27)-24=000: 微控制器没有时钟输出; 位15-14=00: PCLK2(APB2时钟)二分频后作为ADC时钟; 位13-11=000: HCLK不分频,即APB2高速时钟PCLK2等于AHB时钟; 位10-8=000: 低速APB1时钟(PCLK1)不分频; 位7-4=0000: AHB时钟不分频,等于系统时钟SYSCLK; 位3-2=00: HSI(内部高速时钟)作为系统时钟; 位1-0=00: HSI(内部高速时钟)作为系统时钟。2、位24=0: PLL关闭; 位19=0: 时钟检测器关闭,当外部时钟就绪后开启; 位16=0: 外部时钟HSE关闭。3、位22=0:PLL时钟1.5倍分频作为USB时钟; 位21-18=0000: PLL二倍频输出,只有PLL关闭时才可以设置; 位17=0: HSE不分频,只有PLL关闭时才可以设置; 位16=0:HSI时钟2分频后作为PLL输入时钟,只有PLL关闭时才可以设置;4、位23=1:清除时钟安全系统中断标志位; 位20=1: 清除PLL就绪中断标志位; 位19=1: 清除HSE就绪中断标志位; 位18=1: 清除HSI就绪中断标志位; 位17=1: 清除LSE就绪中断标志位; 位16=1: 清除LSI就绪中断标志位。

联系朋友别欠费,天空辽阔任你飞,再多困难别后退! “

STM32时钟库函数RCC

相关文章:

你感兴趣的文章:

标签云: