打印

【连载】STM8L051F3_03_CLK应用

[复制链接]
1261|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
caijie001|  楼主 | 2018-5-9 23:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文介绍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,所以这里不介绍系统时钟源的切换,在官方手册中有详细的系统时钟源切换的介绍。


相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:21ic公开课专区:http://open.21ic.com/ 21ic资料下载中心:http://dl.21ic.com/ 21ic项目外包中心:http://project.21ic.com/ 杰杰欢迎大家有空常来赛事专区逛逛

131

主题

3790

帖子

63

粉丝