1.RCC_DeInit
函数原型:void RCC_DeInit (void)
功能:将外设RCC寄存器重设为默认值。
参数:无
例子:RCC_DeInit (); //将外设RCC寄存器重设为默认值
2.RCC_HSEConfig
函数原型:void RCC_HSEConfig (u32 RCC_HSE)
功能:设置外部高速晶振(HSE)。
参数:RCC_HSE_HSE的新状态
参数:RCC_HSE
描述:
- RCC_HSE_OFF:HSE晶振失能
- RCC_HSE_ON:HSE晶振使能
- RCC_HSE_Bypass:HSE晶振被外部时钟旁路
例子:RCC_HSEConfig(RCC_HSE_ON); //使能HSE
3.RCC_WaitForHSEStartUp
函数原型:ErrorStatus RCC_WaitForHSEStartUp (void)
功能:等待HSE起振,该函数将等待直到HSE就绪,或者在超时的情况下退出。
参数:无
返回值:ErrorStatus枚举值。SUCCESS:HSE晶振稳定且就绪;ERROR:HSE晶振未就绪。
例子:ErrorStatus HSEStartUpStatus;
RCC_HSEConfig(RCC_HSE_ON); //使能HSE
HSEStartUpStatus=RCC_WaitForHSEStartUp ();
if( HSEStartUpStatus==SUCCESS) //起振稳定 ,设置PLL和系统时钟
{
}
else //HSE起振失败
{
}
4.RCC_HCLKConfig
函数原型:void RCC_HCLKConfig (u32 RCC_HCLK)
功能:设置AHB时钟(HCLK)
参数: RCC_HCLK:定义HCLK,该时钟源自系统时钟(SYSCLK)
返回值:无
参数: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
例子:RCC_HCLKConfig (RCC_SYSCLK_Div1 ); //配置AHB频率和系统时钟一致(即系统时钟1分频)
5.RCC_PCLK1Config
函数原型:void RCC_PCLK1Config (u32 RCC_PCLK1)
功能:设置低速APB时钟(PCLK1)
参数:RCC_PCLK1:定义PCLK1,该时钟源自AHB时钟(HCLK)
返回值:无
参数: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
例子:RCC_PCLK1Config (RCC_HCLK_Div2 ); //设置PCLK1为HCLK 2分频
6.RCC_PCLK2Config
函数原型:void RCC_PCLK1Config (u32 RCC_PCLK2)
功能:设置高速APB时钟(PCLK2)
参数:RCC_PCLK2:定义PCLK2,该时钟源自AHB时钟(HCLK)
返回值:无
参数:RCC_PCLK2
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
例子:RCC_PCLK2Config (RCC_HCLK_Div1); //设置PCLK2为HCLK 1分频
7.FLASH_SetLatency
函数原型:void FLASH_SetLatency (u32 FLASH_Latency )
功能:设置代码延时值
参数:FLASH_Latency:用来设置Flash存储器延时时钟周期
返回值:无
参数:FLASH_Latency
FLASH_Latency _0 :0个延时周期
FLASH_Latency _1 :1个延时周期
FLASH_Latency _2 :2个延时周期
例子: FLASH_SetLatency (FLASH_Latency _2 ); //设置Flash延时事件为2个周期
8.FLASH_PrefetchBufferCmd
函数原型:void FLASH_PrefetchBufferCmd (u32 FLASH_PrefetchBuffer)
功能:使能或者失能预取指缓
参数:FLASH_PrefetchBuffer:选择Flash预取指缓存的模式
返回值:无
参数:FLASH_PrefetchBuffer
FLASH_PrefetchBuffer_Enablce:预取指缓存使能
FLASH_PrefetchBuffer_Disable:预取指缓存失能
例子: FLASH_PrefetchBufferCmd (FLASH_PrefetchBuffer_Enablce); //使能Flash预取缓存
9.RCC_PLLConfig
函数原型:void RCC_PLLConfig (u32 RCC_PLLSource, u32 RCC_PLLMul);
功能:设置PLL时钟源及倍频系数
参数: RCC_PLLSource:PLL的输入时钟源
RCC_PLLMul:PLL的倍频系数
参数:RCC_PLLSource
RCC_PLLSource_HSI_Div2 :PLL的输入时钟=HSI时钟频率除以2
RCC_PLLSource_HSE_Div1 :PLL的输入时钟=HSE时钟频率除以1
RCC_PLLSource_HSE_Div2 :PLL的输入时钟=HSE时钟频率除以2
参数: RCC_PLLMul
RCC_PLLMul_2:PLL输入时钟*2
RCC_PLLMul_3:PLL输入时钟*3
RCC_PLLMul_4:PLL输入时钟*4
……
RCC_PLLMul_16:PLL输入时钟*16
例子://选择HSE(8MHz)为PLL的时钟源,9倍频,于是得到72MHz输出
RCC_PLLConfig (RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
10.RCC_PLLCmd
函数原型:void RCC_PLLCmd (FunctionalState NewState)
功能:使能或失能PLL
参数:NewState:PLL的新状态。这个参数可以取:ENABLE或者DISABLE
返回值:无
例子:RCC_PLLCmd (ENABLE); //使能PLL
11.RCC_SYSCLKConfig
函数原型:void RCC_SYSCLKConfig (u32 RCC_SYSCLKSource)
功能:设置系统时钟(SYSCLK)
参数:RCC_SYSCLKSource:用作系统时钟的时钟源
参数:RCC_SYSCLKSource
RCC_SYSCLKSource_HSI :选择HSI作为系统时钟
RCC_SYSCLKSource_HSE :选择HSE作为系统时钟
RCC_SYSCLKSource_PLLCLK :选择PLL作为系统时钟
例子:RCC_SYSCLKConfig (RCC_SYSCLKSource_PLLCLK); //选择PLL为系统时钟源。
12.RCC_GetSYSCLKSource
函数原型:u8 RCC_GetSYSCLKSource (void)
功能:返回用作系统时钟的时钟源
参数:无
返回值:用作系统时钟的时钟源。
0x00:HSI作为系统时钟;
0x04:HSE作为系统时钟;
0x08:PLL作为系统时钟;
例子:if (RCC_GetSYSCLKSource()==0x04)
{
} //是
else //否
{
}
13.RCC_APB2PeriphClockCmd
函数原型:void RCC_APB2PeriphClockCmd (u32 RCC_APB2Periph, FunctionalState NewState)
功能:使能或者失能APB2外设时钟
参数:RCC_APB2Periph:ABP2的外设时钟
NewState:指定外设时钟的新状态。可取ENABLE或DISABLE。
参数:RCC_APB2Periph
RCC_APB2Periph_AFIO :功能复用I/O时钟
RCC_APB2Periph_GPIOA :GPIOA时钟
……
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外设时钟
例子://打开GPIOA,SPI1的时钟
RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA|RCC_APB2Periph_SPI1, ENABLE);
14.GPIO_Init
函数原型:void GPIO_Init (GPIO_TypeDef*GPIOx .GPIO_Init TypeDef*GPIO_InitStruct)
功能:根据GPIO_InitStruct 中指定的参数初始化外设GPIOx
参数:GPIOx:x可以是A、B、C、D、E
GPIO_InitStruct:指向结构GPIO_Init TypeDef的指针,包含了外设GPIO的配置信息。
例子://设置GPIOA所有的I/O为浮空输入模式
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_ALL;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_Init (GPIOA,&GPIO_InitStructure);
(更详细的介绍看我的另一篇stm32库函数---GPIO篇)