一时钟管理
1 恢复相关的时钟寄存器到默认值
void CLK_DeInit()
2 启用或关闭外部高速振荡器(HSE)void CLK_HSECmd(FunctionState NewState)
启用CLK_HSECmd(ENABLE)
关闭CLK_HSECmd(DISABLE)
3启用或关闭内部高速振荡器(HSI)
void CLK_HSICmd(FunctionState NewState)
启用CLK_HSICmd(ENABLE)
关闭CLK_HSICmd(DISABLE)
4启用或关闭内部低速振荡器(LSI)
void CLK_LSICmd(FunctionState NewState)
关闭CLK_LSICmd(DISABLE);
启用CLK_LSICmd(ENABLE);
5 启用或关闭时钟输出功能
void CLK_CCOCmd(FunctionState NewState)
关闭CLK_CCOCmd(DISABLE);
启用CLK_CCOCmd(ENABLE);
6 启用或关闭时钟切换
void CLK_ClockSwitchCmd(FunctionState NewState)
关闭CLK_ClockSwitchCmd(DISABLE);
启用CLK_ClockSwitchCmd(ENABLE);
7 启用或关闭快速唤醒
void CLK_FastHaltWakeUpCmd(FunctionState NewState)
关闭CLK_FastHaltWakeUpCmd(DISABLE);
启用CLK_FastHaltWakeUpCmd(ENABLE);
8 启用或关闭活跃停机模式下的电压调节器
CLK_SlowActiveHaltWakeUpCmd(FunctionState NewState)
关闭CLK_SlowActiveHaltWakeUpCmd(DISABLE);
启用CLK_SlowActiveHaltWakeUpCmd(ENABLE);
9 启用或关闭指定的时钟中断
CLK_PeripheralClockConfig(CLK_IT_TypeDef CLK_IT, FunctionState NewState)
参数1:I2C 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_I2C, ENABLE);
参数1:SPI 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_SPI, ENABLE);
参数1:UART1 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART1, ENABLE);
参数1:UART2 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART2, ENABLE);
参数1:UART3 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART3, ENABLE);
参数1:TIMER1 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, ENABLE);
参数1:TIMER2 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2, ENABLE);
参数1:TIMER3 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER3, ENABLE);
参数1:TIMER4 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, ENABLE);
参数1:TIMER5 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER5, ENABLE);
参数1:TIMER6 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER6, ENABLE);
参数1:AWU 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_AWU, ENABLE);
参数1:ADC 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_ADC, ENABLE);
参数1:CAN 参数2:ENABLE
CLK_PeripheralClockConfig(CLK_PERIPHERAL_CAN, ENABLE);
10 系统时钟切换配置
CLK_ClockSwitchConfig(CLK_SwitchMode_TypeDef CLK_SwitchMode, CLK_Source_TypeDef CLK_NewClock,FunctionState ITState, CLK_CurrentClockState_TypeDef CLK_CurrentClockState)
参数1:手动切换参数2:内部高速振荡器参数3:关闭参数4:继续启用ErrorStatus clk_return_status;
clk_return_status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_MANUAL, CLK_SOURCE_HSI, ENABLE, CLK_CURRENTCLOCKSTATE_ENABLE);
参数1:自动切换参数2:内部低速振荡器参数3:关闭参数4:关闭
ErrorStatus clk_return_status;
clk_return_status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_LSI, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
参数1:自动切换参数2:外部高速振荡器参数3:关闭参数4:关闭
ErrorStatus clk_return_status;
clk_return_status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
11 配置内部高速振荡器(HSI)的分频器
void CLK_HSIPrescalerConfig(CLK_Prescaler_TypeDef HSIPrescaler)
1分频CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
2分频CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);
4分频CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV4);
8分频CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8);
12 配置时钟输出脚(CCO)的时钟源
Void CLK_CCOConfig(CLK_Output_TypeDef CLK_CCO)
参数1:内部高速振荡器/分频值CLK_CCOConfig(CLK_OUTPUT_HSI);
参数1:内部低速振荡器CLK_CCOConfig(CLK_OUTPUT_LSI);
参数1:外部高速振荡器CLK_CCOConfig(CLK_OUTPUT_HSE);
参数1:CPU时钟1分频CLK_CCOConfig(CLK_OUTPUT_CPU);
参数1:CPU时钟2分频CLK_CCOConfig(CLK_OUTPUT_CPUDIV2);
参数1:CPU时钟4分频CLK_CCOConfig(CLK_OUTPUT_CPUDIV4);
参数1:CPU时钟8分频CLK_CCOConfig(CLK_OUTPUT_CPUDIV8);
参数1:CPU时钟16分频CLK_CCOConfig(CLK_OUTPUT_CPUDIV16);
参数1:CPU时钟32分频CLK_CCOConfig(CLK_OUTPUT_CPUDIV32);
参数1:CPU时钟64分频CLK_CCOConfig(CLK_OUTPUT_CPUDIV64);
参数1:fHSI CLK_CCOConfig(CLK_OUTPUT_HSIRC);
参数1:fMASTER CLK_CCOConfig(CLK_OUTPUT_MASTER);
参数1:其它/fCPU CLK_CCOConfig(CLK_OUTPUT_OTHERS);
13 启用或关闭指定的外设时钟
Void CLK_PeripheralClockConfig(CLK_Peripheral_TypeDef CLK_Peripheral,FunctionalState NewState)
参数1:时钟安全系统检测标志参数2:启用
CLK_ITConfig(CLK_IT_CSSD, ENABLE);
参数1:时钟切换中断标志参数2:关闭
CLK_ITConfig(CLK_IT_SWIF, DISABLE);
14 配置系统时钟分频器
Void CLK_SYSCLKConfig(CLK_Prescaler_TypeDef CLK_Prescale)
参数1:内部高速振荡器1分频CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
参数1:内部高速振荡器2分频CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV2);
参数1:内部高速振荡器4分频CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV4);
参数1:内部高速振荡器8分频CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV8);
参数1:CPU时钟1分频CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
参数1:CPU时钟2分频CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV2);
参数1:CPU时钟4分频CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV4);
参数1:CPU时钟8分频CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV8);
参数1:CPU时钟16分频CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV16); 参数1:CPU时钟32分频CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV32); 参数1:CPU时钟64分频CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV64); 参数1:CPU时钟128分频CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV128);
15 配置SWIM时钟分频器
void CLK_SWIMConfig(CLK_SWIMDivider_TypeDef CLK_SWIMDivider)
参数1:2分频CLK_SWIMConfig(CLK_SWIMDIVIDER_2);
参数1:不分频CLK_SWIMConfig(CLK_SWIMDIVIDER_OTHER);
16配置CAN时钟频率
Void CLK_CANConfig((CLK_CANDivider_TypeDef CLK_CANDivider)
参数1:时钟频率=HSE/1 CLK_CANConfig(CLK_CANDIVIDER_1); 参数1:时钟频率=HSE/2 CLK_CANConfig(CLK_CANDIVIDER_2); 参数1:时钟频率=HSE/3 CLK_CANConfig(CLK_CANDIVIDER_3); 参数1:时钟频率=HSE/4 CLK_CANConfig(CLK_CANDIVIDER_4); 参数1:时钟频率=HSE/5 CLK_CANConfig(CLK_CANDIVIDER_5); 参数1:时钟频率=HSE/6 CLK_CANConfig(CLK_CANDIVIDER_6); 参数1:时钟频率=HSE/7 CLK_CANConfig(CLK_CANDIVIDER_7); 参数1:时钟频率=HSE/8 CLK_CANConfig(CLK_CANDIVIDER_8);
17 启用时钟安全系统
Void CLK_ClockSercuritySystemEnable(void)
18 清除时钟切换忙标志
Void CLK_SYSCLKEmergencyClear(void)
19 修正内部高速振荡器频率
Void CLK_AdjustHSICalibrationValue(CLK_HSITrimValue_TypeDef CLK_HSITrimValue)
参数1:校准值为0 CLK_AdjustHSICalibrationValue(CLK_HSITRIMV ALUE_0);
参数1:校准值为1 CLK_AdjustHSICalibrationValue(CLK_HSITRIMV ALUE_1);
参数1:校准值为2 CLK_AdjustHSICalibrationValue(CLK_HSITRIMV ALUE_2);
参数1:校准值为3 CLK_AdjustHSICalibrationValue(CLK_HSITRIMV ALUE_3);
参数1:校准值为4 CLK_AdjustHSICalibrationValue(CLK_HSITRIMV ALUE_4);
参数1:校准值为5 CLK_AdjustHSICalibrationValue(CLK_HSITRIMV ALUE_5);
参数1:校准值为6 CLK_AdjustHSICalibrationValue(CLK_HSITRIMV ALUE_6);
参数1:校准值为7 CLK_AdjustHSICalibrationValue(CLK_HSITRIMV ALUE_7);
20 获得系统时钟频率
u32 CLK_GetClockFreq()
21 获得系统时钟源
CLK_GetSYSCLKSource(void)
22 获得时钟标志状态
CLK_GetFlagStatus(CLK_FLAG_TypeDef CLK_FLAG)
参数1:内部低速振荡器就绪标志位CLK_GetFlagStatus(CLK_FLAG_LSIRDY); 参数1:内部高速振荡器就绪标志位CLK_GetFlagStatus(CLK_FLAG_HSIRDY); 参数1:外部高速振荡器就绪标志位CLK_GetFlagStatus(CLK_FLAG_HSERDY); 参数1:时钟切换中断标志位CLK_GetFlagStatus(CLK_FLAG_SWIF);
参数1:时钟切换忙标志位CCLK_GetFlagStatus(CLK_FLAG_SWBSY); 参数1:时钟安全系统检测标志位CLK_GetFlagStatus(CLK_FLAG_CSSD);
参数1:辅助振荡器开关状态位CLK_GetFlagStatus(CLK_FLAG_AUX);
参数1:时钟输出忙标志位CLK_GetFlagStatus(CLK_FLAG_CCOBSY); 参数1:时钟输出就绪标志位CLK_GetFlagStatus(CLK_FLAG_CCORDY);
23 获得时钟中断标志状态
CLK_GetITStatus(CLK_IT_TypeDef CLK_IT)
参数1:时钟安全系统监测标志CLK_GetITStatus(CLK_IT_CSSD);
参数1:时钟切换中断标志CLK_GetITStatus(CLK_IT_SWIF);
24 清除中断标志状态
Void CLK_ClearITPendingBit(CLK_IT_ TypeDef CLK_IT);
参数1:时钟安全系统检测标志CLK_ClearITPendingBit(CLK_IT_CSSD); 参数1:时钟切换终端标志CLK_ClearITPendingBit(CLK_IT_SWIF);