• STM8S之时钟设置


    昨天被安排做别的工作,耽误一天,今天继续写,坚持学习。

    1,STM8S的4种时钟源可用做主时钟:
    ● 1-24MHz高速外部晶体振荡器(HSE)
    ● 最大24MHz高速外部时钟信号(HSE user-ext)
    ● 16MHz高速内部RC振荡器(HSI)
    ● 128KHz低速内部RC(LSI)
    各个时钟源可单独打开或关闭,从而优化功耗。

    2,系统的启动

    为使系统快速启动,复位后时钟控制器自动使用HSI的8分频(HSI/8)做为主时钟。其原因为HSI的稳定时间短,而8分频可保证系统在较差的VDD条件下安全启动。

    另外,stm8s还可以切换时钟源,有自动和手动两种方法,先不做讨论。

    3,几个时钟寄存器

    时钟状态寄存器(CLK_CMSR)

    主时钟切换寄存器(CLK_SWR)

    可以知道系统复位后,会自动用内部高速时钟作为时钟源。

    void main(void)
    {
      /* Infinite loop */
      CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//设置为内部高速时钟
      
      while (1)
      {
      }
      
    }

    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1)函数设置内部时钟不分频。

    void CLK_HSIPrescalerConfig(CLK_Prescaler_TypeDef HSIPrescaler)
    {
    
        /* check the parameters */
        assert_param(IS_CLK_HSIPRESCALER_OK(HSIPrescaler));
    
        /* Clear High speed internal clock prescaler */
        CLK->CKDIVR &= (uint8_t)(~CLK_CKDIVR_HSIDIV);
    
        /* Set High speed internal clock prescaler */
        CLK->CKDIVR |= (uint8_t)HSIPrescaler;
    
    }
    

    所以,系统复位后直接调用CLK_HSIPrescalerConfig函数,就设置系统时钟为不分频的内部高速时钟。

    懒惰不会让你一下子跌到 但会在不知不觉中减少你的收获; 勤奋也不会让你一夜成功 但会在不知不觉中积累你的成果 越努力,越幸运。
  • 相关阅读:
    babel6的babel-plugin-add-module-exports插件
    babel ---- presets字段设定转码规则
    Babel6.x的安装过程
    npm
    JavaScript的数组
    JavaScript的数据类型
    JavaScript
    数据类型详解
    jsp笔记总结
    Servlet学习总结
  • 原文地址:https://www.cnblogs.com/Rainingday/p/5947483.html
Copyright © 2020-2023  润新知