7 库函数之复位和时钟设置(RCC)所有函数的介绍及使用的介绍及使用
- 1. 图片有格式
- 二、RCC库函数固件库函数预览
- 2.1 函数RCC_DeInit
- 2.2 函数RCC_HSEConfig
- 2.3 函数RCC_WaitForHSEStartUp
- 2.4 函数RCC_AdjustHSICalibrationValue
- 2.5 函数RCC_HSICmd
- 2.6 函数RCC_PLLConfig
- 2.7 函数RCC_PLLCmd
- 2.8 函数RCC_SYSCLKConfig
- 2.9 函数RCC_GetSYSCLKSource
- 2.10 函数RCC_HCLKConfig
- 2.11 函数RCC_PCLK1Config
- 2.12 函数RCC_PCLK2Config
- 2.13 函数RCC_ITConfig
- 2.14 函数RCC_USBCLKConfig
- 2.15 函数RCC_ADCCLKConfig
- 2.16 函数RCC_LSEConfig
- 2.17 函数RCC_LSICmd
- 2.18 函数RCC_RTCCLKConfig
- 2.19 函数RCC_RTCCLKCmd
- 2.20 函数RCC_GetClocksFreq
- 2.21 函数RCC_AHBPeriphClockCmd
- 2.22 函数RCC_APB2PeriphClockCmd
- 2.23 函数RCC_APB1PeriphClockCmd
- 2.24 函数RCC_APB2PeriphResetCmd
- 2.25 函数RCC_APB1PeriphResetCmd
- 2.26 函数RCC_BackupResetCmd
- 2.27 函数RCC_ClockSecuritySystemCmd
- 2.28 函数RCC_MCOConfig
- 2.29 函数RCC_GetFlagStatus
- 2.30 函数RCC_ClearFlag
- 2.31 函数RCC_GetITStatus
- 2.32 函数RCC_ClearITPendingBit
- 该文档修改记录:
- 总结
函数描述格式:
函数名 | 外设函数的名称 |
---|---|
函数原形 | 原形声明 |
功能描述 | 简要解释函数是如何执行的 |
输入参数{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 寄存器重设为缺省值
输入参数 无
输出参数 无
返回值 无
先决条件 无
被调用函数 无
- 该函数不改动寄存器 RCC_CR 的 HSITRIM[4:0]位。
- 该函数不重置寄存器 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)所有函数的介绍及使用的简单使用。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。