第二节 对stm32f10c_rcc.c的学习

1.void RCC_DeInit(void)

功能:将RCC外设寄存器重置为默认值

注释:该函数不改动RCC_CR中的叠加在内部高速时钟校准上的内部高速时钟调整值

        该函数不重置备份域控制寄存器RCC_BDCR以及控制/状态寄存器RCC_CSR

例如:RCC_DeInit();

2.void RCC_HSEConfig(uint32_t RCC_HSE)

功能:配置外部高速晶振(HSE)

注释:高速外部时钟信号HSE由两种时钟源产生:HSE外部晶体谐振器 HSE用户外部时钟

        RCC_HSE_OFF(HSE晶振关闭)         RCC_HSE_ON(HSE晶振打开)

        RCC_HSE_Bypass(HSE晶振被外部时钟旁路)

例如:RCC_HSEConfig(RCC_HSE_ON);

3.ErrorStatus RCC_WaitForHSEStartUp(void)

功能:等待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
{

}

4.void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue)

功能:调整内部高速晶振(HSI)的校准值

注释:HSICAL:内部高速时钟校准 (Internal high-speed clock calibration), 在系统启动时,这些位被自动初始化

        HSITRIM:内部高速时钟调整 (Internal high-speed clock trimming),由软件写入来调整内部高速时钟,

                             被叠加在HSICAL数值上

例如:RCC_AdjustHSICalibrationValue(0x1F);

5.void RCC_HSICmd(FunctionalState NewState)

功能:使能或失能内部高速晶振(HSI)

例如:RCC_HSICmd(ENABEL);

6.void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul)

功能:配置PLL时钟源及倍频因子

注释:PLL的输出频率不能超过72MHz;由软件设置来确定PLL倍频系数,只有在PLL关闭的情况下才可被写入

例如:RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

7.void RCC_PLLCmd(FunctionalState NewState)

功能:使能或者失能PLL

例如:RCC_PLLCmd(ENABLE);

8.void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource)

功能:配置系统时钟(SYSCLK)

注释:HSI作为系统时钟;HSE作为系统时钟;PLL输出作为系统时钟

例如:RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

9.uint8_t RCC_GetSYSCLKSource(void)

功能:返回用作系统时钟的时钟源

注释:HSI:0x00;HSE:0x04;PLL:0x08

例如:

if(RCC_GetSYSCLKSource() != 0x04)
{
}
else
{
}

10.void RCC_HCLKConfig(uint32_t RCC_SYSCLK)

功能:配置AHB时钟(HCLK)

注释:对系统时钟进行分频得到

例如:RCC_HCLKConfig(RCC_SYSCLK_Div1);

11.void RCC_PCLK1Config(uint32_t RCC_HCLK)

功能:配置低速APB时钟(PCLK1)

注释:对AHB时钟(HCLK)进行分频得到

例如:RCC_PCLK1Config(RCC_HCLK_Div2);

12.void RCC_PCLK2Config(uint32_t RCC_HCLK)

功能:配置高速APB时钟(PCLK2)

注释:对AHB时钟(HCLK)进行分频得到

例如:RCC_PCLK2Config(RCC_HCLK_Div1);

13.void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState)

功能:使能或者失能RCC中断

注释:HSI / LSE / HSI / HSE / PLL就绪中断

例如:RCC_ITConfig(RCC_IT_PLLRDY,ENABLE);

14.void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource)

功能:配置USB时钟(USBCLK)

注释:对PLLCLK分频得到

例如:RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);

15.void RCC_ADCCLKConfig(uint32_t RCC_PCLK2)

功能:配置ADC时钟(ADCCLK)

注释:对高速APB时钟(PCLK2)分频得到

例如:RCC_ADCCLKConfig(RCC_PCLK2_Div2);

16.void RCC_LSEConfig(uint8_t RCC_LSE)

功能:配置低速外部晶振(LSE)

注释:低速外部时钟信号LSE由两种时钟源产生:LSE外部晶体谐振器 LSE用户外部时钟

        RCC_LSE_OFF(LSE晶振关闭)         RCC_LSE_ON(LSE晶振打开)

        RCC_LSE_Bypass(LSE晶振被外部时钟旁路)

例如:RCC_LSEConfig(RCC_LSE_ON);

17.void RCC_LSICmd(FunctionalState NewState)

功能:使能或者失能内部低速晶振(LSI)

例如:RCC_LSICmd(ENABLE);

18.void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource)

功能:配置RTC时钟(RTCCLK)

注释:LSI / LSE/ (HSE/128)

例如:RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);

19.void RCC_RTCCLKCmd(FunctionalState NewState)

功能:使能或者失能RTC时钟

例如:RCC_RTCCLKCmd(ENABLE);

20.void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)

功能:返回不同芯片时钟的频率

注释:需要在你的实际应用的时候,跟据实际的外部晶振的值,修改库函数中定义HSE_Value的宏的值,

        且该数值不能为分数

例如:RCC_GetClocksFreq(&RCC_Clocks);

21.void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState)

功能:使能或者失能挂载到AHB总线上的外设时钟

注释:DMA1 / DMA2 / SRAM / FLITF / CRC / FSMC / SDIO, 其中SRAM和FLITF时钟只能在睡眠模式下禁用。

例如:RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1 | RCC_AHBPeriph_DMA2 , ENABLE);

22.void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)

功能:使能或者失能挂载到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);

23.void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)

功能:使能或者失能挂载到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);

24.void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)

功能:强制或者释放挂载到APB2高速总线上的外设复位

注释:一般先使能复位,再失能复位;xxx_DeInit()一般会在函数内调用该函数

例如:RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO , ENABLE);

        RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO , DISABLE);

25.void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)

功能:强制或者释放挂载到APB1低速总线上的外设复位

注释:一般先使能复位,再失能复位;xxx_DeInit()一般会在函数内调用该函数

例如:RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, ENABLE);

        RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, DISABLE);

26.void RCC_BackupResetCmd(FunctionalState NewState)

功能:强制或释放备份域复位

例如:RCC_BackupResetCmd(ENABLE);

27.void RCC_ClockSecuritySystemCmd(FunctionalState NewState)

功能:使能或者失能时钟安全系统

例如:RCC_ClockSecuritySystemCmd(ENABLE);

28.void RCC_MCOConfig(uint8_t RCC_MCO)

功能:选择要在MCO引脚上输出的时钟源

注释:该时钟输出在启动和切换MCO时钟源时可能会被截断

        在系统时钟作为输出至MCO引脚时,请保证输出时钟频率不超过50MHz (I/O口最高频率)

例如:RCC_MCOConfig(RCC_MCO_PLLCLK_Div2);

29.FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG)

功能:检查是否设置了指定的RCC标志

注释:HSI / HSE / PLL / LSI / LSE就绪标志 ; PIN / POR / PDR / SFT / WWDG / IWDG / LPWG复位标志

例如:

if(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)  
{  
}  
else
{
}
 

30.void RCC_ClearFlag(void)

功能:清除RCC复位标志

注释:清除PIN / POR / PDR / SFT / WWDG / IWDG / LPWG复位标志

例如:RCC_ClearFlag();

31.ITStatus RCC_GetITStatus(uint8_t RCC_IT)

功能:获取中断标志位以检查指定的RCC中断是否已经发生

注释:检查HSI / LSE / HSI / HSE / PLL / CSS(时钟安全系统)就绪中断

例如:

if(RCC_GetITStatus(RCC_IT_PLLRDY) == RESET)  
{  
}  
else  
{
}

32.void RCC_ClearITPendingBit(uint8_t RCC_IT)

功能:清除RCC的中断挂起位

注释:清除HSI / LSE / HSI / HSE / PLL / CSS(时钟安全系统)就绪中断标志位

例如:RCC_ClearITPendingBit(RCC_IT_PLLRDY);
————————————————
版权声明:本文为CSDN博主「我吃了你的作业」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_42513925/article/details/81352212

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜灼华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值