查看原文
其他

【连载】STM8L051F3_03_CLK应用

光神 物联网IoT开发 2021-01-31

本文介绍STM8L的CLK相关知识。内容分为以下几部分:

  • CLK简介

  • 系统时钟频率切换

1、CLK简介

STM8L051F3的时钟控制系统设计时非常稳定的,同时也很容易使用,它可以使得MUC在低消耗下获仍然保持优性能。用户可以通过管理分配到CPU&外设的时钟来达到降低功耗。STM8L051F3有一个安全无干扰的时钟切换机制允许用户切换系统时钟源,同时可以通过预分频器来控制系统时钟频率。时钟结构图如下:

注:STM8L051F3的Peripheral Clock enable是13 bit,没有LCD外设

 

STM8L051F3的系统时钟源有以下4种:

  • 16MHz内部高速(出厂已校准)RC时钟HSI

  • 1~16MHz外部高速振荡器时钟HSE

  • 768kHz外部低速振荡器时钟LSE

  • 38kHz内部低速低功耗时钟LSI

每个时钟源皆可独立打开或关闭来节省功耗,每个时钟源都可经过可编程预分频之后再用于驱动系统时钟,系统复位后默认使用的时钟是HSI/8。所有的外设时钟都是从系统时钟(SYSCLK)中派生出来的,除了以下几个:

  • BEEP(蜂鸣器)时钟,使用LSE/LSI

  • RTC时钟,使用LSE/LSI/HSI/HSE

  • 独立看门狗(IWDG)时钟

STM8LL051F3有一个外设时钟门(Peripheral clock gating),在系统复位后,所有的外设时钟是关闭的(除了PCKEN27),用户可以配置CLK_PCKENRx外设时钟门寄存器相应的PCKEN位来使能相应的外设时钟。

STM8LL051F内部有一个时钟安全系统(CSS),该系统的作用是在使用外部时钟作为系统时钟源时,对其检测试试检测,一旦外部时钟源出现异常就会做出相应的处理。STM8LL051F有一个可配置时钟输出功能(CCO),该功能是把系统时钟在CCO引脚上输出。

2、系统时钟频率切换

2.1 系统时钟频率配置

本小节内容介绍如何改变改变系统时钟的频率(不改变系统时钟源)。系统上电时默认系统时钟源为HSI,频率为HSI/8 = 2MHz。例程通过按键KEY(外部中断方式)来改变系统时钟频率,LED1的闪烁速度会产生变化。内容比较简单,只需要一条语句即可改变系统时钟的频率:

CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);     //系统时钟1分频(16M)

使用的例程:STM8L051F3_03_CLK

2.2 例程介绍

主函数代码如下(初始化LED,EXTI,开启外部中断,进入循环):

void main(void)

{

  LED_Init();   //初始化LED1

  EXTI_Init();  //初始化KEY

  enableInterrupts();   //开总中断

while(1)

{

if(Flag != 0)       //判断标志位

      CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);     //系统时钟1分频(16M)

    delay_ms(500);

    GPIO_ToggleBits(LED1_GPIO_PORT, LED1_GPIO_PINS);//切换LED1状态

}

}

在主函数的循环中,根据判断Flag标志位是否被置位来决定是否改变系统时钟的频率,该标志位的置位程序在外部中断程序中,(程序中的Flag标志位在main.c文件中定义,中断函数的stm8l15x_it.c文件声明使用)如下:

INTERRUPT_HANDLER(EXTI4_IRQHandler,12)

{

    /* In order to detect unexpected events during development,

       it is recommended to set a breakpoint on the following instruction.

    */

   //延迟消抖

  delay_ms(10);

  //松手检测

while(GPIO_ReadInputDataBit(KEY_GPIO_PORT, KEY_GPIO_PINS)== 0);

  //标志位置1

  Flag = 1;

  //清除中断标志位

  EXTI_ClearITPendingBit(EXTI_IT_Pin4);

}

使用ST-LINK把程序下载到开发板中,LED1闪烁,按下KEY后LED1闪烁变快。注:由于核心板没有接HSE,所以这里不介绍系统时钟源的切换,在官方手册中有详细的系统时钟源切换的介绍。

 

未完待续。。。
作者:光神
编辑:杰杰
2018-05-09


往期精彩回顾

【连载】从单片机到操作系统①


STM8L051F3_0b_开发环境搭建

【连载】STM8L051F3_0d_基础介绍

【连载】STM8L051F3_01_GPIO应用

【连载】STM8L051F3_02_EXTI应用

【连载】STM8L051F3_02_EXTI应用

【连载】STM8L051F3_04_PWR应用


创客:

如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存