STM32F103外部8M的振荡器,经过倍频后最高可以达到72M。
void RCC_DeInit(void) 将外设RCC寄存器重设为缺省值
void RCC_HSEConfig(u32 RCC_HSE) 设置外部高速晶振(HSE)
RCC_HSE 取值如下:
RCC_HSE_OFF HSE晶振OFF
RCC_HSE_ON HSE晶振ON
RCC_HSE_Bypass HSE晶振被外部时钟旁路
ErrorStatus RCC_WaitForHSEStartUp(void) 等待HSE起振
该函数将等待直到HSE就绪,或者在超时的情况下退出
返回值
一个ErrorStatus枚举值:
SUCCESS:HSE晶振稳定且就绪
ERROR:HSE晶振未就绪
void RCC_HCLKConfig(u32 RCC_HCLK) 设置AHB时钟(HCLK)
AHB(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
void RCC_PCLK2Config(u32 RCC_PCLK2) 设置高速AHB时钟(PCLK2)
PCLK2时钟源自AHB时钟(HCLK)
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
void RCC_PCLK1Config(u32 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
void RCC_PLLConfig(u32 RCC_PLLSource, u32 RCC_PLLMul) 设置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输入参数
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
void RCC_PLLCmd(FunctionalState NewState) 使能或者失能PLL
NewState输入参数
ENABLE 或者 DISABLE
FlagStatus RCC_GetFlagStatus(u8 RCC_FLAG) 检查指定的RCC标志位设置与否
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 低功耗复位
返回值
SET RESET
void RCC_SYSCLKConfig(u32 RCC_SYSCLKSource) 设置系统时钟(SYSCLK)
RCC_SYSCLKSource输入参数
RCC_SYSCLKSource_HSI 选择HSI作为系统时钟
RCC_SYSCLKSource_HSE 选择HSE作为系统时钟
RCC_SYSCLKSource_PLLCLK 选择PLL作为系统时钟
u8 RCC_GetSYSCLKSource(void) 返回用作系统时钟的时钟源
返回值
0x00:HSI作为系统时钟
0x04:HSE作为系统时钟
0x08:PLL作为系统时钟
例程 HSE作为PLL,PLL作为SYSCLK
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);
if (RCC_WaitForHSEStartUp() == SUCCESS) {
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
RCC_PLLCmd(ENABLE);
while( RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET ) {
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while( RCC_GetSYSCLKSource() != 0x08 );
}
}
上一篇:STM32F103 UART通信讲解
下一篇:STM32 串口调试UART1,调试笔记1
推荐阅读最新更新时间:2024-11-05 12:22
设计资源 培训 开发板 精华推荐
- 四位数码管时钟-教学
- 基于智能小车的超声波测距电路(附带工程电路图)
- LT1070 驱动高压 NPN 的典型应用
- DC1250A-BA,用于 LTM9001-BA CMOS 输出的演示板,16 位,160Msps,DC-300MHz LPF,8dB 增益
- 102010027, BeagleBone Green (BBG) 开发平台
- 用于无刷直流电机控制的 MOSFET 功率驱动器
- DN0023,使用 SPV1020 为太阳能应用中的 12V 铅酸电池充电的设计说明
- LT6654BHLS8-2.048 具有升压输出电流和电流限制的电压基准的典型应用
- EVAL-AD7655CB,AD7655 评估板,48 引脚,16 位 PulSAR 模数转换器
- #第七届立创电赛#姿态演示器