功能:将RCC外设寄存器重置为默认值
注释:该函数不改动RCC_CR中的叠加在内部高速时钟校准上的内部高速时钟调整值
该函数不重置备份域控制寄存器RCC_BDCR以及控制/状态寄存器RCC_CSR
例如:RCC_DeInit();
功能:配置外部高速晶振(HSE)
注释:高速外部时钟信号HSE由两种时钟源产生:HSE外部晶体谐振器 HSE用户外部时钟
RCC_HSE_OFF(HSE晶振关闭) RCC_HSE_ON(HSE晶振打开)
RCC_HSE_Bypass(HSE晶振被外部时钟旁路)
例如:RCC_HSEConfig(RCC_HSE_ON);
功能:等待HSE起振就绪,带超时退出功能
注释:检测标志位,含超时检测功能
do
{
HSEStatus = RCC_GetFlagStatus(RCC_FLAG_HSERDY);
StartUpCounter++;
} while((StartUpCounter != HSE_STARTUP_TIMEOUT) && (HSEStatus == RESET));
例如:
ErrorStatus HSEStartUpStatus;
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
}
else
{
}
功能:调整内部高速晶振(HSI)的校准值
注释:HSICAL:内部高速时钟校准 (Internal high-speed clock calibration), 在系统启动时,这些位被自动初始化
HSITRIM:内部高速时钟调整 (Internal high-speed clock trimming),由软件写入来调整内部高速时钟,
被叠加在HSICAL数值上
例如:RCC_AdjustHSICalibrationValue(0x1F);
功能:使能或失能内部高速晶振(HSI)
例如:RCC_HSICmd(ENABEL);
功能:配置PLL时钟源及倍频因子
注释:PLL的输出频率不能超过72MHz;由软件设置来确定PLL倍频系数,只有在PLL关闭的情况下才可被写入
例如:RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
功能:使能或者失能PLL
例如:RCC_PLLCmd(ENABLE);
功能:配置系统时钟(SYSCLK)
注释:HSI作为系统时钟;HSE作为系统时钟;PLL输出作为系统时钟
例如:RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
功能:返回用作系统时钟的时钟源
注释:HSI:0x00;HSE:0x04;PLL:0x08
例如:
if(RCC_GetSYSCLKSource() != 0x04)
{
}
else
{
}
功能:配置AHB时钟(HCLK)
注释:对系统时钟进行分频得到
例如:RCC_HCLKConfig(RCC_SYSCLK_Div1);
功能:配置低速APB时钟(PCLK1)
注释:对AHB时钟(HCLK)进行分频得到
例如:RCC_PCLK1Config(RCC_HCLK_Div2);
功能:配置高速APB时钟(PCLK2)
注释:对AHB时钟(HCLK)进行分频得到
例如:RCC_PCLK2Config(RCC_HCLK_Div1);
功能:使能或者失能RCC中断
注释:HSI / LSE / HSI / HSE / PLL就绪中断
例如:RCC_ITConfig(RCC_IT_PLLRDY,ENABLE);
功能:配置USB时钟(USBCLK)
注释:对PLLCLK分频得到
例如:RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);
功能:配置ADC时钟(ADCCLK)
注释:对高速APB时钟(PCLK2)分频得到
例如:RCC_ADCCLKConfig(RCC_PCLK2_Div2);
功能:配置低速外部晶振(LSE)
注释:低速外部时钟信号LSE由两种时钟源产生:LSE外部晶体谐振器 LSE用户外部时钟
RCC_LSE_OFF(LSE晶振关闭) RCC_LSE_ON(LSE晶振打开)
RCC_LSE_Bypass(LSE晶振被外部时钟旁路)
例如:RCC_LSEConfig(RCC_LSE_ON);
功能:使能或者失能内部低速晶振(LSI)
例如:RCC_LSICmd(ENABLE);
功能:配置RTC时钟(RTCCLK)
注释:LSI / LSE/ (HSE/128)
例如:RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
功能:使能或者失能RTC时钟
例如:RCC_RTCCLKCmd(ENABLE);
功能:返回不同芯片时钟的频率
注释:需要在你的实际应用的时候,跟据实际的外部晶振的值,修改库函数中定义HSE_Value的宏的值,
且该数值不能为分数
例如:RCC_GetClocksFreq(&RCC_Clocks);
功能:使能或者失能挂载到AHB总线上的外设时钟
注释:DMA1 / DMA2 / SRAM / FLITF / CRC / FSMC / SDIO, 其中SRAM和FLITF时钟只能在睡眠模式下禁用。
例如:RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1 | RCC_AHBPeriph_DMA2 , ENABLE);
功能:使能或者失能挂载到APB2高速总线上的外设时钟
注释:AFIO / GPIOA / GPIOB / GPIOC / GPIOD / GPIOE / GPIOF / GPIOG / ADC1 / ADC2/ ADC3 /
TIM1 / SPI1 / USART1 / TIM8 / TIM9 / TIM10/ TIM11 / TIM15 / TIM16 / TIM17
例如:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB , ENABLE);
功能:使能或者失能挂载到APB1低速总线上的外设时钟
注释:TIM2 / TIM3 / TIM4 / TIM5 / TIM6 / TIM7 / TIM12 / TIM13 / TIM14 / SPI2 / SPI3 / USART2 / USART3 /
USART4 / USART5/ I2C1 / I2C2 / WWDG / USB / CAN1 / BKP / PWR / DAC / CEC
例如:RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG | RCC_APB1Periph_SPI2, ENABLE);
功能:强制或者释放挂载到APB2高速总线上的外设复位
注释:一般先使能复位,再失能复位;xxx_DeInit()一般会在函数内调用该函数
例如:RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO , ENABLE);
RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO , DISABLE);
功能:强制或者释放挂载到APB1低速总线上的外设复位
注释:一般先使能复位,再失能复位;xxx_DeInit()一般会在函数内调用该函数
例如:RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, ENABLE);
RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, DISABLE);
功能:强制或释放备份域复位
例如:RCC_BackupResetCmd(ENABLE);
功能:使能或者失能时钟安全系统
例如:RCC_ClockSecuritySystemCmd(ENABLE);
功能:选择要在MCO引脚上输出的时钟源
注释:该时钟输出在启动和切换MCO时钟源时可能会被截断
在系统时钟作为输出至MCO引脚时,请保证输出时钟频率不超过50MHz (I/O口最高频率)
例如:RCC_MCOConfig(RCC_MCO_PLLCLK_Div2);
功能:检查是否设置了指定的RCC标志
注释:HSI / HSE / PLL / LSI / LSE就绪标志 ; PIN / POR / PDR / SFT / WWDG / IWDG / LPWG复位标志
例如:
if(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
else
{
}
功能:清除RCC复位标志
注释:清除PIN / POR / PDR / SFT / WWDG / IWDG / LPWG复位标志
例如:RCC_ClearFlag();
功能:获取中断标志位以检查指定的RCC中断是否已经发生
注释:检查HSI / LSE / HSI / HSE / PLL / CSS(时钟安全系统)就绪中断
例如:
if(RCC_GetITStatus(RCC_IT_PLLRDY) == RESET)
{
}
else
{
}
功能:清除RCC的中断挂起位
注释:清除HSI / LSE / HSI / HSE / PLL / CSS(时钟安全系统)就绪中断标志位
例如:RCC_ClearITPendingBit(RCC_IT_PLLRDY);