• STM32F4库函数里面的RCC_DeInit(void)函数分析


    void RCC_DeInit(void)

    {

    /*Set HSION bit,内部高速时钟使能HSI振荡器打开*/

    RCC->CR |=(uint32_t)0x00000001;

    /*Reset CFGR register,

    31:30--00:选择系统时钟 (SYSCLK) 输出到 MCO2 引脚

    27:29--0xx:MCO2 预分频器 (MCO2 prescaler)无分频

    24:26--0xx:MCO1 预分频器 (MCO1 prescaler)无分频

    23--0:PLLI2S 时钟用作 I2S 时钟源

    22:21--00:选择 HSI 时钟输出到 MCO1 引脚

    20:16--00000:无时钟,适用于 RTC 时钟的 HSE 分频系数

    15:13--0xx:AHB 时钟不分频

    12:10--0xx:AHB 时钟不分频

     9:8 保留,必须保持复位值

     7:4--AHB 预分频器 (AHB prescaler),0xxx:系统时钟不分频

    3:2 --SWS:系统时钟切换状态 (System clock switch status),00:HSI 振荡器用作系统时钟

    1:0-- SW:系统时钟切换 (System clock switch),00:选择 HSI 振荡器作为系统时钟*/

    RCC->CFGR = 0x00000000;

     /* Reset HSEON, CSSON, PLLON, PLLI2S and PLLSAI(STM32F42xxx/43xxx/446xx/469xx/479xx devices) bits

    HSEON:0:HSE 振荡器关闭,HSE 时钟使能 (HSE clock enable)

    CSSON:时钟安全系统使能 (Clock security system enable),0:时钟安全系统关闭(时钟监测器关闭)

    PLLON:主 PLL (PLL) 使能 (Main PLL (PLL) enable),0:PLL 关闭

    PLLI2S:PLLI2S 使能 (PLLI2S enable),0:PLLI2S 关闭

    PLLSAI:无*/
     RCC->CR &= (uint32_t)0xEAF6FFFF;

     /* Reset PLLCFGR register */   RCC->PLLCFGR = 0x24003010;

    #if defined(STM32F40_41xxx) || defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F401xx) || defined(STM32F411xE) || defined(STM32F446xx) || defined(STM32F469_479xx)    /* Reset PLLI2SCFGR register */  

    RCC->PLLI2SCFGR = 0x20003000;

    #endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx || STM32F411xE || STM32F446xx || STM32F469_479xx */

    #if defined(STM32F40_41xxx) || defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F446xx) || defined(STM32F469_479xx)   /* Reset PLLSAICFGR register, only available for STM32F42xxx/43xxx/446xx/469xx/479xx devices */  

    RCC->PLLSAICFGR = 0x24003000;

    #endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F446xx || STM32F469_479xx */  

      /* Reset HSEBYP bit */  

    RCC->CR &= (uint32_t)0xFFFBFFFF;

      /* Disable all interrupts */  

    RCC->CIR = 0x00000000;

      /* Disable Timers clock prescalers selection, only available for STM32F42/43xxx devices */   RCC->DCKCFGR = 0x00000000;  

    #if defined(STM32F410xx)

      /* Disable LPTIM and FMPI2C clock prescalers selection, only available for STM32F410xx devices */  

    RCC->DCKCFGR2 = 0x00000000;

    #endif /* STM32F410xx */  }

    }

  • 相关阅读:
    Python自动化开发学习的第十一周----WEB基础(html+css)
    oracle中的rownum详解
    oracle常用函数
    oracle使用exp命令无法导出空表解决方法
    plsql批量执行多个sql脚本示例
    oracle删除表空间和用户
    oracle系统相关表
    SpringMVC常用注解
    RequestMapping注解
    利用plsql只导出某些表,或者视图,或者触发器等
  • 原文地址:https://www.cnblogs.com/gary-guo/p/5666596.html
Copyright © 2020-2023  润新知