7 库函数之复位和时钟设置(RCC)所有函数的介绍及使用

函数描述格式:

函数名外设函数的名称
函数原形原形声明
功能描述简要解释函数是如何执行的
输入参数{x}输入参数描述
输出参数{x}输出参数描述
返回值函数的返回值
先决条件调用函数前应满足的要求
被调用函数其他被该函数调用的库函数

缩写定义

缩写外设/单元
ADC模数转换器
BKP备份寄存器
CAN控制器局域网模块
DMA直接内存存取控制器
EXTI外部中断事件控制器
FLASH闪存存储器
GPIO通用输入输出
I2C内部集成电路
IWDG独立看门狗
NVIC嵌套中断向量列表控制器
PWR电源/功耗控制
RCC复位与时钟控制器
RTC实时时钟
SPI串行外设接口
SysTick系统嘀嗒定时器
TIM通用定时器
TIM1高级控制定时器
USART通用同步异步接收发射端
WWDG窗口看门狗

1. 图片有格式

因为从OneNote复制到CSDN上只能是图片,粘贴不了文字,所以就显示图片,在该博客后半部分会补充上相关函数的文字。
如果只是学习了解函数可以看图片,图片有格式,比较友好;需要使用某个函数,可以去博客后半部分copy使用。

在这里插入图片描述

二、RCC库函数固件库函数预览

函数名描述
RCC_DeInit将外设 RCC 寄存器重设为缺省值
RCC_HSEConfig设置外部高速晶振(HSE)
RCC_WaitForHSEStartUp等待 HSE 起振
RCC_AdjustHSICalibrationValue调整内部高速晶振(HSI)校准值
RCC_HSICmd使能或者失能内部高速晶振(HSI)
RCC_PLLConfig设置 PLL 时钟源及倍频系数
RCC_PLLCmd使能或者失能 PLL
RCC_SYSCLKConfig设置系统时钟(SYSCLK)
RCC_GetSYSCLKSource返回用作系统时钟的时钟源
RCC_HCLKConfig设置 AHB 时钟(HCLK)
RCC_PCLK1Config设置低速 AHB 时钟(PCLK1)
RCC_PCLK2Config设置高速 AHB 时钟(PCLK2)
RCC_ITConfig使能或者失能指定的 RCC 中断
RCC_USBCLKConfig设置 USB 时钟(USBCLK)
RCC_ADCCLKConfig设置 ADC 时钟(ADCCLK)
RCC_LSEConfig设置外部低速晶振(LSE)
RCC_LSICmd使能或者失能内部低速晶振(LSI)
RCC_RTCCLKConfig设置 RTC 时钟(RTCCLK)
RCC_RTCCLKCmd使能或者失能 RTC 时钟
RCC_GetClocksFreq返回不同片上时钟的频率
RCC_AHBPeriphClockCmd使能或者失能 AHB 外设时钟
RCC_APB2PeriphClockCmd使能或者失能 APB2 外设时钟
RCC_APB1PeriphClockCmd使能或者失能 APB1 外设时钟
RCC_APB2PeriphResetCmd强制或者释放高速 APB(APB2)外设复位
RCC_APB1PeriphResetCmd强制或者释放低速 APB(APB1)外设复位
RCC_BackupResetCmd强制或者释放后备域复位
RCC_ClockSecuritySystemCmd使能或者失能时钟安全系统
RCC_MCOConfig选择在 MCO 管脚上输出的时钟源
RCC_GetFlagStatus检查指定的 RCC 标志位设置与否
RCC_ClearFlag清除 RCC 的复位标志位
RCC_GetITStatus检查指定的 RCC 中断发生与否
RCC_ClearITPendingBit清除 RCC 的中断待处理位

2.1 函数RCC_DeInit

函数名 RCC_DeInit
函数原形 void RCC_DeInit(void)
功能描述 将外设 RCC 寄存器重设为缺省值
输入参数 无
输出参数 无
返回值 无
先决条件 无
被调用函数 无

  1. 该函数不改动寄存器 RCC_CR 的 HSITRIM[4:0]位。
  2. 该函数不重置寄存器 RCC_BDCR 和寄存器 RCC_CSR。
    例:
    /* Deinitialize the RCC registers */
    RCC_DeInit();

2.2 函数RCC_HSEConfig


函数名 RCC_HSEConfig
函数原形 void RCC_HSEConfig(u32 RCC_HSE)
功能描述 设置外部高速晶振(HSE)
输入参数 RCC_HSE: HSE 的新状态
参阅 Section:RCC_HSE 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 如果 HSE 被直接或者通过 PLL 用于系统时钟,那么它不能被停振
被调用函数 无
RCC_HSE
该参数设置了HSE的状态。
RCC HSE 定义
_

RCC_HSE 描述
RCC_HSE_OFF HSE 晶振 OFF
RCC_HSE_ON HSE 晶振 ON
RCC_HSE_Bypass HSE 晶振被外部时钟旁路
例:
/* Enable the HSE */
RCC_HSEConfig(RCC_HSE_ON);

2.3 函数RCC_WaitForHSEStartUp

Table 341. 描述了函数 RCC_WaitForHSEStartUp
Table 341. 函数 RCC WaitForHSEStartUp
函数名 RCC_WaitForHSEStartUp
函数原形 ErrorStatus RCC_WaitForHSEStartUp(void)
功能描述 等待 HSE 起振
该函数将等待直到 HSE 就绪,或者在超时的情况下退出
输入参数 无
输出参数 无
返回值 一个 ErrorStatus 枚举值:
SUCCESS:HSE 晶振稳定且就绪
ERROR:HSE 晶振未就绪
先决条件 无
被调用函数 无
例:
ErrorStatus HSEStartUpStatus;
/* Enable HSE /
RCC_HSEConfig(RCC_HSE_ON);
/
Wait till HSE is ready and if Time out is reached exit /
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
/
Add here PLL ans system clock config /
}
else
{
/
Add here some code to deal with this error */
}

2.4 函数RCC_AdjustHSICalibrationValue


函数名 RCC_AdjustHSICalibrationValue
函数原形 void RCC_AdjustHSICalibrationValue(u8 HSICalibrationValue)
功能描述 调整内部高速晶振(HSI)校准值
输入参数 HSICalibrationValue: 校准补偿值
该参数取值必须在 0 到 0x1F 之间
输出参数 无
返回值 无
先决条件 无
被调用函数 无
例:
/* Set HSI calibration value to c0x1F (maximum) */
RCC_AdjustHSICalibrationValue(0x1F);

2.5 函数RCC_HSICmd

函数名 RCC_HSICmd
函数原形 void RCC_HSICmd(FunctionalState NewState)
功能描述 使能或者失能内部高速晶振(HSI)
输入参数 NewState:HSI 新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 如果 HSI 被直接或者通过 PLL 用于系统时钟,或者 FLASH 编写操作进行 中,那么它不能被停振
被调用函数 无
例:
/* Enable Internal High Speed oscillator */
RCC_HSICmd(ENABLE);

2.6 函数RCC_PLLConfig


函数名 RCC_PLLConfig
函数原形 void RCC_PLLConfig(u32 RCC_PLLSource, u32 RCC_PLLMul)
功能描述 设置 PLL 时钟源及倍频系数
输入参数 1 RCC_PLLSource:PLL 的输入时钟源
参阅 Section:RCC_PLLSource 查阅更多该参数允许取值范围
输入参数 2 RCC_PLLMul:PLL 倍频系数
参阅 Section:RCC_PLLMul 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_PLLSource
RCC_PLLSource 用以设置 PLL 的输入时钟源。
_

RCC_PLLSource 描述
RCC_PLLSource_HSI_Div2 PLL 的输入时钟 = HSI 时钟频率除以 2
RCC_PLLSource_HSE_Div1 PLL 的输入时钟 = HSE 时钟频率
RCC_PLLSource_HSE_Div2 PLL 的输入时钟 = HSE 时钟频率除以 2
RCC_PLLMul
该参数用以设置 PLL 的倍频系数。

RCC_PLLMul 描述
RCC_PLLMul_2 PLL 输入时钟 x 2
RCC_PLLMul_3 PLL 输入时钟 x 3
RCC_PLLMul_4 PLL 输入时钟 x 4
RCC_PLLMul_5 PLL 输入时钟 x 5
RCC_PLLMul_6 PLL 输入时钟 x 6
RCC_PLLMul_7 PLL 输入时钟 x 7
RCC_PLLMul_8 PLL 输入时钟 x 8
RCC_PLLMul_9 PLL 输入时钟 x 9
RCC_PLLMul_ 10 PLL 输入时钟 x 10
RCC_PLLMul_ 11 PLL 输入时钟 x 11
RCC_PLLMul_ 12 PLL 输入时钟 x 12
RCC_PLLMul_ 13 PLL 输入时钟 x 13
RCC_PLLMul_ 14 PLL 输入时钟 x 14
RCC_PLLMul_ 15 PLL 输入时钟 x 15
RCC_PLLMul_ 16 PLL 输入时钟 x 16
警告:必须正确设置软件,使 PLL 输出时钟频率不超过 72 MHz
例:
/* Set PLL clock output to 72MHz using HSE (8MHz) as entry clock */RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

2.7 函数RCC_PLLCmd

Table 347. 描述了函数 RCC_PLLCmd
Table 347. 函数 RCC PLLCmd
__
函数名 RCC_PLLCmd
函数原形 void RCC_PLLCmd(FunctionalState NewState)
功能描述 使能或者失能 PLL
输入参数 NewState:PLL 新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 如果 PLL 被用于系统时钟,,那么它不能被失能
被调用函数 无
例:
/* Enable the PLL */
RCC_PLLCmd(ENABLE);

2.8 函数RCC_SYSCLKConfig

函数名 RCC_SYSCLKConfig
函数原形 void RCC_SYSCLKConfig(u32 RCC_SYSCLKSource)
功能描述 设置系统时钟(SYSCLK)
输入参数 RCC_SYSCLKSource: 用作系统时钟的时钟源
参阅 Section:RCC_SYSCLKSource 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_SYSCLKSource
该参数设置了系统时钟。
_

RCC_SYSCLKSource 描述
RCC_SYSCLKSource_HSI 选择 HSI 作为系统时钟
RCC_SYSCLKSource_HSE 选择 HSE 作为系统时钟
RCC_SYSCLKSource_PLLCLK 选择 PLL 作为系统时钟
例:
/* Select the PLL as system clock source */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

2.9 函数RCC_GetSYSCLKSource

_

函数名 RCC_GetSYSCLKSource
函数原形 u8 RCC_GetSYSCLKSource(void)
功能描述 返回用作系统时钟的时钟源
输入参数 无
输出参数 无
返回值 用作系统时钟的时钟源:
0x00:HSI 作为系统时钟
0x04:HSE 作为系统时钟
0x08:PLL 作为系统时钟
先决条件 无
被调用函数 无
例:
/* Test if HSE is used as system clock */
if(RCC_GetSYSCLKSource() != 0x04)
{
}
else
{
}

2.10 函数RCC_HCLKConfig

函数名 RCC_HCLKConfig
函数原形 void RCC_HCLKConfig(u32 RCC_HCLK)
功能描述 设置 AHB 时钟(HCLK)
输入参数 RCC_HCLK: 定义 HCLK,该时钟源自系统时钟(SYSCLK) 参阅 Section:RCC_HCLK 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_HCLK
该参数设置了AHB时钟,
_

RCC_HCLK 描述
RCC_SYSCLK_Div1 AHB 时钟 = 系统时钟
RCC_SYSCLK_Div2 AHB 时钟 = 系统时钟 / 2
RCC_SYSCLK_Div4 AHB 时钟 = 系统时钟 / 4
RCC_SYSCLK_Div8 AHB 时钟 = 系统时钟 / 8
RCC_SYSCLK_Div16 AHB 时钟 = 系统时钟 / 16
RCC_SYSCLK_Div64 AHB 时钟 = 系统时钟 / 64
RCC_SYSCLK_Div128 AHB 时钟 = 系统时钟 / 128
RCC_SYSCLK_Div256 AHB 时钟 = 系统时钟 / 256
RCC_SYSCLK_Div512 AHB 时钟 = 系统时钟 / 512
例:
/* Configure HCLK such as HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);

2.11 函数RCC_PCLK1Config


函数名 RCC_PCLK1Config
函数原形 void RCC_PCLK1Config(u32 RCC_PCLK1)
功能描述 设置低速 AHB 时钟(PCLK1)
输入参数 RCC_PCLK1: 定义 PCLK1,该时钟源自 AHB 时钟(HCLK) 参阅 Section:RCC_PCLK1 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_PCLK1
该参数设置了低速AHB时钟(PCLK1),

RCC_PCLK1 描述
RCC_HCLK_Div1 APB1 时钟 = HCLK
RCC_HCLK_Div2 APB1 时钟 = HCLK / 2
RCC_HCLK_Div4 APB1 时钟 = HCLK / 4
RCC_HCLK_Div8 APB1 时钟 = HCLK / 8
RCC_HCLK_Div16 APB1 时钟 = HCLK / 16
例:
/* Configure PCLK1 such as PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);

2.12 函数RCC_PCLK2Config


函数名 RCC_PCLK2Config
函数原形 void RCC_PCLK2Config(u32 RCC_PCLK2)
功能描述 设置高速 AHB 时钟(PCLK2)
输入参数 RCC_PCLK2: 定义 PCLK2,该时钟源自 AHB 时钟(HCLK) 参阅 Section:RCC_PCLK2 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_PCLK2
该参数设置了高速AHB时钟(PCLK2)
_

RCC_PCLK2 描述
RCC_HCLK_Div1 APB2 时钟 = HCLK
RCC_HCLK_Div2 APB2 时钟 = HCLK / 2
RCC_HCLK_Div4 APB2 时钟 = HCLK / 4
RCC_HCLK_Div8 APB2 时钟 = HCLK / 8
RCC_HCLK_Div16 APB2 时钟 = HCLK / 16
例:
/* Configure PCLK2 such as PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);

2.13 函数RCC_ITConfig

函数名 RCC_ITConfig
函数原形 void RCC_ITConfig(u8 RCC_IT, FunctionalState NewState)
功能描述 使能或者失能指定的 RCC 中断
输入参数 1 RCC_IT:待使能或者失能的 RCC 中断源
参阅 Section:RCC_IT 查阅更多该参数允许取值范围
输入参数 2 NewState:RCC 中断的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_IT
输入参数 RCC_IT 使能或者失能 RCC 的中断。可以取下表的一个或者多个取值的组合作为该参数的值。
_

RCC_IT 描述
RCC_IT_LSIRDY LSI 就绪中断
RCC_IT_LSERDY LSE 就绪中断
RCC_IT_HSIRDY HSI 就绪中断
RCC_IT_HSERDY HSE 就绪中断
RCC_IT_PLLRDY PLL 就绪中断
例:
/* Enable PLL Ready interrupt */
RCC_ITConfig(RCC_IT_PLLRDY, ENABLE);

2.14 函数RCC_USBCLKConfig


函数名 RCC_USBCLKConfig
函数原形 void RCC_USBCLKConfig(u32 RCC_USBCLKSource)
功能描述 设置 USB 时钟(USBCLK)
输入参数 RCC_USBCLKSource: 定义 USBCLK,该时钟源自 PLL 输出
参阅 Section:RCC_USBCLKSource 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_USBCLKSource
该参数设置了USB时钟(USBCLK)

RCC_USBCLKSource 描述
RCC_USBCLKSource_PLLCLK_ 1Div5 USB 时钟 = PLL 时钟除以 1.5
RCC_USBCLKSource_PLLCLK_Div1 USB 时钟 = PLL 时钟
例:
/* PLL clock divided by 1.5 used as USB clock source */
RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);

2.15 函数RCC_ADCCLKConfig


函数名 RCC_ADCCLKConfig
函数原形 void ADC_ADCCLKConfig(u32 RCC_ADCCLKSource)
功能描述 设置 ADC 时钟(ADCCLK)
输入参数 RCC_ADCCLKSource: 定义 ADCCLK,该时钟源自 APB2 时钟(PCLK2) 参阅 Section:RCC_ADCCLKSource 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_ADCCLKSource
该参数设置了ADC时钟(ADCCLK)
Table 362. RCC ADCCLKSource 值
_

RCC_ADCCLKSource 描述
RCC_PCLK2_Div2 ADC 时钟 = PCLK / 2
RCC_PCLK2_Div4 ADC 时钟 = PCLK / 4
RCC_PCLK2_Div6 ADC 时钟 = PCLK / 6
RCC_PCLK2_Div8 ADC 时钟 = PCLK / 8
例:
/* Configure ADCCLK such as ADCCLK = PCLK2/2 */
RCC_ADCCLKConfig(RCC_PCLK2_Div2);

2.16 函数RCC_LSEConfig

函数名 RCC_LSEConfig
函数原形 void RCC_LSEConfig(u32 RCC_HSE)
功能描述 设置外部低速晶振(LSE)
输入参数 RCC_LSE: LSE 的新状态
参阅 Section:RCC_HSE 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_LSE
_

RCC_LSE 描述
RCC_LSE_OFF LSE 晶振 OFF
RCC_LSE_ON LSE 晶振 ON
RCC_LSE_Bypass LSE 晶振被外部时钟旁路
例:
/* Enable the LSE */
RCC_LSEConfig(RCC_LSE_ON);

2.17 函数RCC_LSICmd

__
函数名 RCC_LSICmd
函数原形 void RCC_LSICmd(FunctionalState NewState)
功能描述 使能或者失能内部低速晶振(LSI)
输入参数 NewState:LSI 新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 如果 IWDG 运行的话, LSI 不能被失能
被调用函数 无
例:
/* Enable the Internal Low Speed oscillator */
RCC_LSICmd(ENABLE);

2.18 函数RCC_RTCCLKConfig

函数名 RCC_RTCCLKConfig
函数原形 void RCC_RTCCLKConfig(u32 RCC_RTCCLKSource)
功能描述 设置 RTC 时钟(RTCCLK)
输入参数 RCC_RTCCLKSource: 定义 RTCCLK
参阅 Section:RCC_RTCCLKSource 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 RTC 时钟一经选定即不能更改,除非复位后备域
被调用函数 无
RCC_RTCCLKSource
该参数设置了RTC时钟(RTCCLK)
_

RCC_RTCCLKSource 描述
RCC_RTCCLKSource_LSE 选择 LSE 作为 RTC 时钟
RCC_RTCCLKSource_LSI 选择 LSI 作为 RTC 时钟
RCC_RTCCLKSource_HSE_Div128 选择 HSE 时钟频率除以 128 作为 RTC 时钟
例:
/* Select the LSE as RTC clock source */
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);

2.19 函数RCC_RTCCLKCmd

__
函数名 RCC_RTCCLKCmd
函数原形 void RCC_RTCCLKCmd(FunctionalState NewState)
功能描述 使能或者失能 RTC 时钟
输入参数 NewState:RTC 时钟的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 该函数只有在通过函数 RCC_RTCCLKConfig 选择 RTC 时钟后,才能调用
被调用函数 无
例:
/* Enable the RTC clock */
RCC_RTCCLKCmd(ENABLE);

2.20 函数RCC_GetClocksFreq

函数名 RCC_GetClocksFreq
函数原形 void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
功能描述 返回不同片上时钟的频率
输入参数 RCC_Clocks:指向结构 RCC_ClocksTypeDef 的指针,包含了各个时钟的频 率
参阅 Section:RCC_Clocks 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_ClocksTypeDef structure
RCC_ClocksTypeDef 定义于文件“stm32fx0x_rcc.h”:
typedef struct
{
u32 SYSCLK_Frequency;
u32 HCLK_Frequency;
u32 PCLK1_Frequency;
u32 PCLK2_Frequency;
u32 ADCCLK_Frequency;
}RCC_ClocksTypeDef;
SYSCLK_Frequency
该成员返回 SYSCLK 的频率,单位 Hz
HCLK_Frequency
该成员返回 HCLK 的频率,单位 Hz
PCLK1_Frequency
该成员返回 PCLK1 的频率,单位 Hz
PCLK2_Frequency
该成员返回 PCLK2 的频率,单位 Hz
ADCCLK_Frequency
该成员返回 ADCCLK 的频率,单位 Hz
例:
/* Get the frequencies of different on chip clocks */
RCC_ClocksTypeDef RCC_Clocks;
RCC_GetClocksFreq(&RCC_Clocks);

2.21 函数RCC_AHBPeriphClockCmd

函数名 RCC_AHBPeriphClockCmd
函数原形 void RCC_AHBPeriphClockCmd(u32 RCC_AHBPeriph,
FunctionalState NewState)
功能描述 使能或者失能 AHB 外设时钟
输入参数1 RCC_AHBPeriph: 门控 AHB 外设时钟
参阅 Section:RCC_AHBPeriph 查阅更多该参数允许取值范围
输入参数2 NewState:指定外设时钟的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 无
被调用函数 无

RCC_AHBPeriph
该参数被门控的AHB外设时钟,

RCC_AHBPeriph 描述
RCC_AHBPeriph_DMA DMA 时钟
RCC_AHBPeriph_SRAM SRAM 时钟
RCC_AHBPeriph_FLITF FLITF 时钟

1.SRAM 和 FLITF 时钟只能在睡眠(SLEEP)模式下被失能。

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA );

2.22 函数RCC_APB2PeriphClockCmd


函数名 RCC_APB2PeriphClockCmd
函数原形 void RCC_APB2PeriphClockCmd(u32 RCC_APB2Periph,
FunctionalState NewState)
功能描述 使能或者失能 APB2 外设时钟
输入参数 1 RCC_APB2Periph: 门控 APB2 外设时钟
参阅 Section:RCC_APB2Periph 查阅更多该参数允许取值范围
输入参数 2 NewState:指定外设时钟的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_APB2Periph
该参数被门控的APB2外设时钟,可以取下表的一个或者多个取值的组合作为该参数的值。

RCC_AHB2Periph 描述
RCC_APB2Periph_AFIO 功能复用 IO 时钟
RCC_APB2Periph_GPIOA GPIOA 时钟
RCC_APB2Periph_GPIOB GPIOB 时钟
RCC_APB2Periph_GPIOC GPIOC 时钟
RCC_APB2Periph_GPIOD GPIOD 时钟
RCC_APB2Periph_GPIOE GPIOE 时钟
RCC_APB2Periph_ADC1 ADC1 时钟
RCC_APB2Periph_ADC2 ADC2 时钟
RCC_APB2Periph_TIM1 TIM1 时钟
RCC_APB2Periph_SPI1 SPI1 时钟
RCC_APB2Periph_USART1 USART1 时钟
RCC_APB2Periph_ALL 全部 APB2 外设时钟
例:
/* Enable GPIOA, GPIOB and SPI1 clocks */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_SPI1, ENABLE);

2.23 函数RCC_APB1PeriphClockCmd


函数名 RCC_APB1PeriphClockCmd
函数原形 void RCC_APB1PeriphClockCmd(u32 RCC_APB1Periph, FunctionalState NewState)
功能描述 使能或者失能 APB1 外设时钟
输入参数 1 RCC_APB1Periph: 门控 APB1 外设时钟
参阅 Section:RCC_APB1Periph 查阅更多该参数允许取值范围
输入参数 2 NewState:指定外设时钟的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_APB1Periph
该参数被门控的APB1外设时钟,可以取下表的一个或者多个取值的组合作为该参数的值。
RCC_AHB1Periph 描述
RCC_APB1Periph_TIM2 TIM2 时钟
RCC_APB1Periph_TIM3 TIM3 时钟
RCC_APB1Periph_TIM4 TIM4 时钟
RCC_APB1Periph_WWDG WWDG 时钟
RCC_APB1Periph_SPI2 SPI2 时钟
RCC_APB1Periph_USART2 USART2 时钟
RCC_APB1Periph_USART3 USART3 时钟
RCC_APB1Periph_I2C1 I2C1 时钟
RCC_APB1Periph_I2C2 I2C2 时钟
RCC_APB1Periph_USB USB 时钟
RCC_APB1Periph_CAN CAN 时钟
RCC_APB1Periph_BKP BKP 时钟
RCC_APB1Periph_PWR PWR 时钟
RCC_APB1Periph_ALL 全部 APB1 外设时钟

例:
/* Enable BKP and PWR clocks */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP | RCC_APB1Periph_PWR,
ENABLE);

2.24 函数RCC_APB2PeriphResetCmd

函数名 RCC_APB2PeriphResetCmd
函数原形 void RCC_APB2PeriphResetCmd(u32 RCC_APB2Periph, FunctionalState NewState)
功能描述 强制或者释放高速 APB(APB2)外设复位
输入参数 1 RCC_APB2Periph: APB2 外设复位
参阅 Section:RCC_APB2Periph 查阅更多该参数允许取值范围
输入参数 2 NewState:指定 APB2 外设复位的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 无
被调用函数 无
例:
/* Enter the SPI1 peripheral to reset /
RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1, ENABLE);
/
Exit the SPI1 peripheral from reset */
RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1, DISABLE);

2.25 函数RCC_APB1PeriphResetCmd


函数名 RCC_APB1PeriphResetCmd
函数原形 void RCC_APB1PeriphResetCmd(u32 RCC_APB1Periph, FunctionalState NewState)
功能描述 强制或者释放低速 APB(APB1)外设复位
输入参数 1 RCC_APB1Periph: APB1 外设复位
参阅 Section:RCC_APB1Periph 查阅更多该参数允许取值范围
输入参数 2 NewState:指定 APB1 外设复位的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 无
被调用函数 无
例:
/* Enter the SPI2 peripheral to reset /
RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, ENABLE);
/
Exit the SPI2 peripheral from reset */
RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, DISABLE);

2.26 函数RCC_BackupResetCmd

函数名 RCC_BackupResetCmd
函数原形 void RCC_BackupResetCmd(FunctionalState NewState)
功能描述 强制或者释放后备域复位
输入参数 NewState:后备域复位的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 无
被调用函数 无
例:
/* Reset the entire Backup domain */
RCC_BackupResetCmd(ENABLE);

2.27 函数RCC_ClockSecuritySystemCmd


函数名 RCC_ClockSecuritySystemCmd
函数原形 void RCC_ClockSecuritySystemCmd(FunctionalState NewState)
功能描述 使能或者失能时钟安全系统
输入参数 NewState:时钟安全系统的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 无
被调用函数 无
例:
/* Enable the Clock Security System */
RCC_ClockSecuritySystemCmd(ENABLE);

2.28 函数RCC_MCOConfig


函数名 RCC_MCOConfig
函数原形 void RCC_MCOConfig(u8 RCC_MCO)
功能描述 选择在 MCO 管脚上输出的时钟源
输入参数 RCC_MCO: 指定输出的时钟源
参阅 Section:RCC_MCO 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无

RCC_MCO
该参数设置了指定输出的时钟源,
_

RCC_MCO 描述
RCC_MCO_NoClock 无时钟被选中
RCC_MCO_SYSCLK 选中系统时钟
RCC_MCO_HSI 选中 HSI
RCC_MCO_HSE 选中 HSE
RCC_MCO_PLLCLK_Div2 选中 PLL 时钟除以 2
警告:当选中系统时钟作为 MCO 管脚的输出时,注意它的时钟频率不超过 50MHz(最大 I/O 速率)。
例:
/* Output PLL clock divided by 2 on MCO pin */
RCC_MCOConfig(RCC_MCO_PLLCLK_Div2);

2.29 函数RCC_GetFlagStatus


函数名 RCC_ GetFlagStatus
函数原形 FlagStatus RCC_GetFlagStatus(u8 RCC_FLAG)
功能描述 检查指定的 RCC 标志位设置与否
输入参数 RCC_FLAG:待检查的 RCC 标志位
参阅 Section:RCC_FLAG 查阅更多该参数允许取值范围
输出参数 无
返回值 RCC_FLAG 的新状态(SET 或者 RESET)
先决条件 无
被调用函数 无
RCC_FLAG
_

RCC_FLAG 描述
RCC_FLAG_HSIRDY HSI 晶振就绪
RCC_FLAG_HSERDY HSE 晶振就绪
RCC_FLAG_PLLRDY PLL 就绪
RCC_FLAG_LSERDY LSI 晶振就绪
RCC_FLAG_LSIRDY LSE 晶振就绪
RCC_FLAG_PINRST 管脚复位
RCC_FLAG_PORRST POR/PDR 复位
RCC_FLAG_SFTRST 软件复位
RCC_FLAG_IWDGRST IWDG 复位
RCC_FLAG_WWDGRST WWDG 复位
RCC_FLAG_LPWRRST 低功耗复位
例:
/* Test if the PLL clock is ready or not */
FlagStatus Status;
Status = RCC_GetFlagStatus(RCC_FLAG_PLLRDY);
if(Status == RESET)
{

}
else

2.30 函数RCC_ClearFlag

函数名 RCC_ ClearFlag
函数原形 void RCC_ClearFlag(void)
功能描述 清除 RCC 的复位标志位
输入参数 RCC_FLAG:清除的 RCC 复位标志位
可以清除的复位标志位有:
RCC_FLAG_PINRST, RCC_FLAG_PORRST, RCC_FLAG_SFTRST,
RCC_FLAG_IWDGRST, RCC_FLAG_WWDGRST, RCC_FLAG_LPWRRST
输出参数 无
返回值 无
先决条件 无
被调用函数 无
例:
/* Clear the reset flags */
RCC_ClearFlag();

2.31 函数RCC_GetITStatus

_

函数名 RCC_ GetITStatus
函数原形 ITStatus RCC_GetITStatus(u8 RCC_IT)
功能描述 检查指定的 RCC 中断发生与否
输入参数 RCC_IT:待检查的 RCC 中断源
参阅 Section:RCC_IT 查阅更多该参数允许取值范围
输出参数 无
返回值 RCC_IT 的新状态
先决条件 无
被调用函数 无
RCC_IT
_

RCC_IT 描述
RCC_IT_LSIRDY LSI 晶振就绪中断
RCC_IT_LSERDY LSE 晶振就绪中断
RCC_IT_HSIRDY HSI 晶振就绪中断
RCC_IT_HSERDY HSE 晶振就绪中断
RCC_IT_PLLRDY PLL 就绪中断
RCC_IT_CSS 时钟安全系统中断
例:
/* Test if the PLL Ready interrupt has occurred or not */
ITStatus Status;
Status = RCC_GetITStatus(RCC_IT_PLLRDY);

if(Status == RESET)
{

}
else
{

}

2.32 函数RCC_ClearITPendingBit

函数名 RCC_ClearITPendingBit
函数原形 void RCC_ClearITPendingBit(u8 RCC_IT)
功能描述 清除 RCC 的中断待处理位
输入参数 RCC_IT:待检查的 RCC 中断源
参阅 Section:RCC_IT 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 无
被调用函数 无
RCC_IT
_

RCC_IT 描述
RCC_IT_LSIRDY LSI 晶振就绪中断
RCC_IT_LSERDY LSE 晶振就绪中断
RCC_IT_HSIRDY HSI 晶振就绪中断
RCC_IT_HSERDY HSE 晶振就绪中断
RCC_IT_PLLRDY PLL 就绪中断
RCC_IT_CSS 时钟安全系统中断
例:
/* Clear the PLL Ready interrupt pending bit */
RCC_ClearITPendingBit(RCC_IT_PLLRDY);

该文档修改记录:

修改时间修改说明
2023年11月05日第一次发布,介绍了STM32库函数之复位和时钟设置(RCC)所有函数的介绍及使用

总结

以上就是库函数之复位和时钟设置(RCC)所有函数的介绍及使用所有函数的介绍及使用的内容,本文介绍了 库函数之复位和时钟设置(RCC)所有函数的介绍及使用的简单使用。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

常驻客栈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值