stm8s开发(四) CLOCK的使用:时钟控制

发布者:mlgb999最新更新时间:2019-12-26 来源: eefocus关键字:stm8s  CLOCK  时钟控制 手机看文章 扫描二维码
随时随地手机看文章

STM8S具有一个强大的时钟系统,内部提供一个高速16M的RC振荡器,和一个低速128K的RC振荡器。


时钟控制器功能强大而且灵活易用。其目的在于使用户在获得最好性能的同时,亦能保证消耗的功率最低。用户可独立地管理各个时钟源,并将它们分配到CPU或各个外设。主时钟和CPU时钟均带有预分频器。具有安全可靠的无故障时钟切换机制,可在程序运行中将主时钟从一个时钟源切换到另一个时钟源。


一般来说,时钟树是配置时钟、控制时钟的依据,所以需要掌握,以下是STM8S时钟树图:

从图中看出,一共有3个时钟源,分别是HSE(高速外部时钟)、HSI(高速内部时钟)、LSI(低速内部时钟)。


HSE(高速外部时钟)可通过外部晶振提供,HSI(高速内部时钟)为16M的RC振荡器,LSI(低速内部时钟)为128K的RC振荡器。


高速时钟(HSE和HSI)可以通过分频器进行降频。降频过后的时钟和原本的时钟都可以通过Master Clock Switch进行选择,


以下是初始化系统时钟的函数(默认使用16M内部RC):


void Set_HSISpeed(void)

{

  //启用内部高速晶振且无分频16MHz

  CLK_ICKR|=0x01;      //开启内部HSI

  while(!(CLK_ICKR&0x02));//HSI准备就绪

  CLK_SWR=0xe1;        //HSI为主时钟源

  CLK_CKDIVR=0x00;     //HSI不分频

}


如果需要切换时钟,需要先等待时钟稳定:

void Switch_LSISpeed(void)

{

  CLK_SWCR|=0x02; //开启切换

  CLK_ICKR|=0x08; //开启LSI

  while(!(CLK_ICKR&0x10));//HSI准备就绪

  CLK_SWR=0xd2;   //LSR为主时钟源

  while((CLK_SWCR & 0x01)==0x01);//等待切换完成

  CLK_CKDIVR=0x00;   //LSI不分频

  CLK_SWCR&=(~0x02); //关闭切换

}

 

void Switch_HSISpeed(void)

{

  CLK_SWCR|=0x02; //开启切换

  CLK_ICKR|=0x01; //开启内部HSI

  while(!(CLK_ICKR&0x02));//HSI准备就绪

  CLK_SWR=0xe1;        //HSI为主时钟源

  while((CLK_SWCR & 0x01)==0x01);//等待切换完成

  CLK_CKDIVR=0x00;   //HSI不分频

  CLK_SWCR&=(~0x02); //关闭切换

}


如果想直接降频,只需要设置始终分频:

void Set_CPU_Full_Speed(void)

{

  CLK_CKDIVR=0x00;   //HSI不分频

}

 

void Set_CPU_Low_Speed(void)

{

  CLK_CKDIVR=0x07;   //HSI 128分频

}


以上就是初始化时钟的代码,一般用于mian函数的第一句话,方便以后计算其他外设的时钟频率。

关键字:stm8s  CLOCK  时钟控制 引用地址:stm8s开发(四) CLOCK的使用:时钟控制

上一篇:STM8S时钟配置CLK_HSIPrescalerConfig与CLK_SYSCLKConfig区别
下一篇:STM8S——8位基本定时器(TIM4)

推荐阅读最新更新时间:2024-11-06 14:35

avr单片机的机器周期与时钟周期
机器周期:从内存中读取一个指令字的时间。简单地说也就是执行一条单周期指令所用的时间。AVR单片机采用哈佛结构(数据和程序分开存储)和精简指令集,一个机器周期等于一个时钟周期。也就是执行一条单周期指令只需要一个时钟脉冲。 时钟周期:数字电路的运行都离不开CLK,也就是时钟脉冲。时钟脉冲的周期就叫时钟周期。由于各器件或功能模块工作的速度要求不一样,像你所说的,又分为CPU时钟周期,ADC时钟周期等。通常我们所说的时钟周期就是CPU时钟周期,单片机通常用外部晶振产生时钟源,所以有了时钟周期等于晶振周期的说法。 CPU时钟周期:提供给CPU的时钟脉冲的周期。由于通常情况下CPU速度最快,所以时钟源直接给CPU提供时钟脉冲,在一个系统里CP
[单片机]
STM8S自学笔记-004 时钟:HSI、HSE与LSI
STM8S的时钟源 单片机世界的多种时钟源 单片机的时钟源有很多种,根据其来源可将它们大致分为两类:内部时钟源 和 外部时钟源。而后,根据频率的不同,又可作如下划分: 内部时钟源 高速的内置时钟源 HSI 中速的内置时钟源 MSI(想到了某PC主板品牌?) 低速的内置时钟源 LSI 锁相环倍频器 PLL(和电脑CPU里的倍频系数很像) 外部时钟源 高速的外置时钟源 HSE 低速的外置时钟源 LSE STM8S的时钟源 HSE:1~16MHz高速的外部晶体振荡器 HSE:最高16MHz的外部时钟信号 HSI:16MHz内部高速RC振荡器 LSI:128KHz的低速内部RC振荡器 上电复位后的STM8S STM8S上电后,MCU将
[单片机]
STM8S 长按键识别
最近学习开发STM8S003 MCU,,刚入手这颗MCU,对很多功能不太了解,只能一边开发学习,记录一下学习过程。 目前,需要实现KEY1按键长按3s进行关机,Linux下直接获取按键的开始时间戳和结束时间戳,可以直接确定按键的触发时间,目前MCU采用的是按键中断的方式,在中断触发后直接进入进入中断函数进行处理,根据定时器的特性,现在是采用方法如下: 将Tim1进行16分频,即频率为1Mhz,然后设置ARR(预装载计数器)为60000,即每次产生溢出时间为60ms, RCR(重复计数寄存器)为50,即 50 * 60 = 3000ms = 3s 后产生一个更新事件,而在按键中断函数中,在按键释放后,判断是否由此更新事件表示,
[单片机]
PCF8563在电子时钟设计中的应用
1引言 数字时钟已成为时钟设计的主导方向,广泛应用于实时控制系统。数字时钟实质是一个对标准频率计数的计数电路,通常由晶体振荡电路、分频电路、时间计数电路、译码驱动电路等组成。这里提出一种电子时钟系统设计方案,是以AT89S52单片机作为控制核心,采用PCF8563时钟/日历器件以及HS12864液晶显示器,通过硬件设计及软件编程实现的。 2 PCF8563简介 图1为PCF8563内部结构。PCF8563内部包括16个8位寄存器,可自动增量的地址寄存器,内置32.768Hz的振荡器(带有一个内部集成的电容),分频器(用于给实时时钟RTC提供源时钟),可编程时钟输出,定时器,报警器,掉电检测器和400 kHz的I2C总线接口。
[电源管理]
PCF8563在电子<font color='red'>时钟</font>设计中的应用
美高森美PTP主时钟升级支持IPv6协议
美高森美(Microsemi)宣布其TimeProvider 5000 IEEE 1588精密时间协议(PTP)主时钟上的硬件可凭借升级,以支持因特网协议第6版(IPv6)和多种全球导航卫星系统(GNSS)卫星导航模式,以确保各种电讯网络应用有更好的接收效果和更高的安全性。 美高森美产品线管理高级总监Barry Dropping表示,随着全球无线客户提升行动基础设施以配合LTE-Advanced(LTE-A)和5G服务的发展,支持IPv6和备用的GNSS卫星导航模式,对于部署一个稳固、安全和不会过时的同步网络实在日益重要。 TimeProvider 5000系统增加了对GLONASS和Galileo的支持,大幅提高了这个被全球营运
[半导体设计/制造]
基于定时器/计数器的实时时钟的设计
  1.实现实时时钟的基本思想      时钟的最小计时单位是秒,如何获得1s的定时时间呢?使用定时器方式1,最大的定时时间也只能达到131 ms。可将定时器的定时时间定为100 ms,采用中断方式进行溢出次数的累计,计满10次,即得到秒计时。而计数10次可用循环程序的方法实现。      时钟运行时,在片内RAM中规定3个单元作为秒、分、时单元,具体安排如下;      42H:“秒”单元;41H“分”单元;40H:“时”单元      从秒到分,从分到时是通过软件累加并进行比较来实现的。要求每满1秒,则“秒”单元42H中的内容加1;“秒”单元满60,则“分”单元41H中的内容加1;“分”单元满60,则“时”单元40H中的内容加
[单片机]
基于定时器/计数器的实时<font color='red'>时钟</font>的设计
STM32F4定时器时钟频率和时钟
从时钟树中我们可以得知 (1)高级定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线 (2)通用定时器timer2~timer5,通用定时器timer12~timer14以及基本定时器timer6,timer7的时钟来源是APB1总线 从STM32F4的内部时钟树可知, (1)当APB1和APB2分频数为1的时候,TIM1、TIM8~TIM11的时钟为APB2的时钟,TIM2~TIM7、TIM12~TIM14的时钟为APB1的时钟; (2)而如果APB1和APB2分频数不为1,那么TIM1、TIM8~TIM11的时钟为APB2的时钟的两倍,TIM2~TIM7、
[单片机]
STM32F4定时器<font color='red'>时钟</font>频率和<font color='red'>时钟</font>源
Maxim推出高性能、三路输出时钟发生器
Maxim推出高性能、三路输出时钟发生器MAX3625B,适用于以太网和光纤通道网络设备。器件采用低噪声VCO和PLL架构,能够从低频晶体或参考时钟输入产生高频、超低抖动(0.36psRMS)时钟信号。器件具有-57dBc的PSNR,大大降低了抖动劣化,简化了嘈杂环境中的系统设计。MAX3625B省去了传统方案中的高成本晶体振荡器和扇出缓冲器,仅需一个外部AT切基频模式晶体。该款器件能够降低时钟分配方案的整体尺寸和成本,因而成为以太网交换机/路由器和存储局域网交换机等应用的理想选择。 MAX3625B采用两组输出分频器产生三路高达320MHz的LVPECL输出,进一步降低了整体BOM。设计人员可以对输出分频器进行编程
[新品]
Maxim推出高性能、三路输出<font color='red'>时钟</font>发生器
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved