STM8 库函学习笔记之CLK

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//-----------------------------------------------------------------------------------------
2 void CLK_HSECmd(FunctionalState NewState);
启用或禁用外部高速振荡器(HSE)
启用或禁用内部高速振荡器(HSI 16MHz)
参数: NewState: 新的状态值 DISABLE 禁用 ENABLE 启用
返回值:无
//-----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------1 void CLK_DeInit(void);
1 / 10
STM8 库函数学习笔记之时钟树解析
2012-12.12
恢复相关的时钟寄存器到默认值
clkflaglsirdy内部低速振荡器就绪标志clkflaghsirdy内部高速振荡器就绪标志clkflaghserdy外部高速振荡器就绪标志clkflagswif时钟切换中断标志clkflagswbsy时钟切换忙标志clkflagcssd系统时钟安全检测标志clkflagaux辅助振荡器的开关状态如果辅助振荡器hsi8开并做为当前的主时钟源clkflagccobsy可配置的时钟输出忙用于指示所选的cco时钟源正处于切换状态clkflagccordy可配置的时钟输出就绪用于指示所选的cco时钟源正处稳定状态返回值
//----------------------------------------------------------------------------------------7 void CLK_FastHaltWakeUpCmd(FunctionalState NewState); 使能或禁止从停机模式(Halt)或活跃停机模式(Active Halt)中快速唤醒。 停机模式(Halt):CPU 和片上设备完全停止工作,定时唤醒单元 AWU 也停止,仅由外部中断及复位唤醒。 活跃停机模式(Active Halt):保留一个定时唤醒单元 AWU 工作,CPU 和片上设备全停止工作,AWU 和外部中断及复位均可唤 醒 使能后内部高速振荡器(HSI)会自动打开,且作为主时钟源(fMASTER)(CKM=SWI=HSI),然后从停机模式(Halt)或活跃停机模式 (Active Halt)中 快速唤醒。 返回值:无
,唤醒时间比较长,但功耗较低。
关于 AWU(自动唤醒功能的详细说明请查看手册)
//-----------------------------------------------------------------------------------------
9 void CLK_PeripheralClockConfig(CLK_Peripheral_TypeDef CLK_Peripheral, FunctionalState NewState); 启用或禁用指定的外设时钟,默认所有的外设时钟都是启用的。
4 void CLK_LSICmd(FunctionalState NewState);
启用或禁用内部低速振荡器(LSI 128KHz)
参数: NewState: 新的状态值 DISABLE 禁用 ENABLE 启用
返回值:无
//-----------------------------------------------------------------------------------------
CLK_NewClock, FunctionalState ITState, CLK_CurrentClockState_TypeDef CLK_CurrentClockState); 11 void CLK_HSIPrescalerConfig(CLK_Prescaler_TypeDef HSIPrescaler); 12 void CLK_CCOConfig(CLK_Output_TypeDef CLK_CCO); 13 void CLK_ITConfig(CLK_IT_TypeDef CLK_IT, FunctionalState NewState); 14 void CLK_SYSCLKConfig(CLK_Prescaler_TypeDef CLK_Prescaler); 15 void CLK_SWIMConfig(CLK_SWIMDivider_TypeDef CLK_SWIMDivider); 16 void CLK_CANConfig(CLK_CANDivider_TypeDef CLK_CANDivider); 17 void CLK_ClockSecuritySystemEnable(void); 18 void CLK_SYSCLKEmergencyClear(void); 19 void CLK_AdjustHSICalibrationValue(CLK_HSITrimValue_TypeDef CLK_HSICalibrationValue); 20 u32 CLK_GetClockFreq(void); 21 CLK_Source_TypeDef CLK_GetSYSCLKSource(void); 22 FlagStatus CLK_GetFlagStatus(CLK_Flag_TypeDef CLK_FLAG); 23 ITStatus CLK_GetITStatus(CLK_IT_TypeDef CLK_IT); 24 void CLK_ClearITPendingBit(CLK_IT_TypeDef CLK_IT);
参数: CLK_Peripheral 外设类型 可选值: CLK_PERIPHERAL_I2C CLK_PERIPHERAL_SPI CLK_PERIPHERAL_UART1 CLK_PERIPHERAL_UART2 CLK_PERIPHERAL_UART3 CLK_PERIPHERAL_TIMER6 CLK_PERIPHERAL_TIMER4 CLK_PERIPHERAL_TIMER5 CLK_PERIPHERAL_TIMER2 CLK_PERIPHERAL_TIMER3 CLK_PERIPHERAL_TIMER1 CLK_PERIPHERAL_AWU CLK_PERIPHERAL_ADC CLK_PERIPHERAL_CAN
5 void CLK_CCOCmd(FunctionalState NewState); 启用或禁用可配置的时钟输出功能
参数: NewState: 新的状态值
2 / 10
STM8 库函数学习笔记之时钟树解析
2012-12.12
DISABLE 禁用 ENABLE 启用 返回值:无
//----------------------------------------------------------------------------------------6 void CLK_ClockSwitchCmd(FunctionalState NewState); 手动启动或关闭时钟切换 参数: NewState: 新的状态值 DISABLE 禁用 ENABLE 启用 返回值:无
3 / 10
STM8 库函数学习笔记之时钟树解析
2012-12.12
如 果 进 入 活 跃 停 机 模 式 前 没 有 调 用 CLK_SlowActiveHaltWakeUpCmd(ENABLE); 或 调 用 了 CLK_SlowActiveHaltWakeUpCmd(DISABLE);即默认的情况下
STM8 库函数学习笔记之函数学习笔记之时钟树解析
STM8 库函数学习笔记之时钟管理
相关函数:
1 void CLK_DeInit(void); 2 void CLK_HSECmd(FunctionalState NewState); 3 void CLK_HSICmd(FunctionalState NewState); 4 void CLK_LSICmd(FunctionalState NewState); 5 void CLK_CCOCmd(FunctionalState NewState); 6 void CLK_ClockSwitchCmd(FunctionalState NewState); 7 void CLK_FastHaltWakeUpCmd(FunctionalState NewState); 8 void CLK_SlowActiveHaltWakeUpCmd(FunctionalState NewState); 9 void CLK_PeripheralClockConfig(CLK_Peripheral_TypeDef CLK_Peripheral, FunctionalState NewState); 10 ErrorStatus CLK_ClockSwitchConfig(CLK_SwitchMode_TypeDef CLK_SwitchMode, CLK_Source_TypeDef
CLK_SwitchMode,
CLK_Source_TypeDef
ITState, CLK_CurrentClockState_TypeDef CLK_CurrentClockState); 系统时钟切换配置
参数:
CLK_SwitchMode, 切换模式 可选值: CLK_SWITCHMODE_MANUAL 手动切换 CLK_SWITCHMODE_AUTO 自动切换
参数: NewState: 新的状态值 DISABLE 禁用 ENABLE 启用
返回值:无
//-----------------------------------------------------------------------------------------
3 void CLK_HSICmd(FunctionalState NewState);
参数:无 返回值:无
注意: 当要复位 CCOR 寄存器时,如果 CCOEN 位被置位,则需要先复位 CCOEN 位,然后再复位 CCOSEL 位,复位 CCOEN 位和 复位 CCOSEL 位的操作必须连续。
这个理解不知对不对,是根据库函数的帮助来理解的,但测试结果,无论 CCOEN 是否置位,调用后都能恢复 CCOR 寄存器。
//----------------------------------------------------------------------------------------8 void CLK_SlowActiveHaltWakeUpCmd(FunctionalState NewState); 启用或禁止活跃停机模式下的电压调节器 但是这个函数并没有字面上的唤醒功能。但是跟自动唤醒(AWU)功能有关。 一旦 MCU 进入活跃停机模式时,主电压调节器将默认关闭(DISABLE),从而唤醒时间将比较长,所以这个函数就为了在快速唤 醒与低功耗之间选 择。 参数: NewState: 新的状态值 DISABLE 禁用 ENABLE 启用 返回值:无 如果为了能快速从活跃停机模式中唤醒,进入活跃停机前则调用 CLK_SlowActiveHaltWakeUpCmd(ENABLE);但功耗较大。
4 / 10
STM8 库函数学习笔记之时钟树解析
CLK_NewClock,新的时钟源 可选值: CLK_SOURCE_HSI 内部 16MHz 高速振荡器 CLK_SOURCE_LSI 内部 128KHz 低速振荡器 CLK_SOURCE_HSE 外部时钟
ITState,启用或禁用时钟切换中断 可选值: DISABLE 禁用 ENABLE 启用
NewState: 新的状态值 DISABLE 禁用 ENABLE 启用
返回值:无
//-----------------------------------------------------------------------------------------
10 ErrorStatus CLK_ClockSwitchConfig(CLK_SwitchMode_TypeDef CLK_NewClock, FunctionalState
相关文档
最新文档