1.图13可见,STM8S单片机主要有四种时钟源可供选择:

1).1-24MHz外部晶体振荡器(HSE).

2).最大24MHz外部时钟(HSE ext).

3).16MHz高速内部RC振荡器(HSI).

4).128KHz低速内部RC振荡器(LSI).

2.主时钟可以从这四种时钟源中任意切换,切换过程可通过自动切换和手动切换。

自动切换过程:使能相应的时钟源,使能切换,等待切换完成。

例如:从HSI切换到外部HSE,子程序如下:

void CLKToHSE(void)

{

while(!(CLK_ECKR&0x02));  //等待HSE就绪

CLK_ECKR  |= 0x01;   //使能HSE

CLK_SWCR |= 0x20;    //使能切换

CLK_SWR = 0xB4; //  (0xE1----HSI )

// (0xD2 ----LSI)

//(0xB4----HSE)

while(!(CLK_SWCR&0x01));  //等待时钟切换完成

CLK_ICKR &= ~0x01;     //关闭HSI

}

手动切换:

手动切换和自动切换差不多,只是要等待时钟稳定后进行切换。

例如,HSI切换至内部LSI,子程序如下:

void CLKToLSI(void)

{

while(!(CLK_ICKR&0x10));  //等待LSI就绪

CLK_ICKR |= 0x08;   //使能LSI

CLK_SWR = 0xD2; //  (0xE1----HSI)

// (0xD2 ----LSI)

//  (0xB4----HSE)

while(!(CLK_SWCR&0x08));

CLK_SWCR |= 0x20;    //使能切换

CLK_ICKR &= ~0x01;     //关闭HSI

}

3.时钟分频

HSI可通过CLK_CKDIVR的HSIDIV[1:0]分频。可选择分频因子1,2,4,8。

CPU时钟又可以通过CLK_CKDIVR的CPUDIV[2:0]分频。可选择分频比1,2,4,8,16,32,64,128。

外设时钟可通过CLK_PCKENR1,CLK_PCKENR2选择使能或关闭,复位情况下默认外设时钟全部打开,不熟悉

的情况下,可以选择默认,以防没有配置时钟而无法使用外设。关闭不必要的外设可以降低系统功耗。

另外还有时钟安全系统CSS,时钟输出,时钟中断,SWIM时钟控制,HSI时钟校准等,下次再讨论吧。

STM8S学习笔记-时钟控制1的更多相关文章

  1. STM8S学习笔记-时钟控制2

    今天把时钟系统的最后部分,时钟安全系统(CSS)和时钟输出功能(CCO),做一个简答的说明. 1.时钟安全系统(以下简称CSS) CSS功能很简单,就是监控HSE是否实效(如果系统使用HSE作为主时钟 ...

  2. TCP/IP学习笔记17--TCP-- 窗口控制 重发控制 流控制

    事业无穷年 -- 韩愈 利用窗口控制提高速度: TCP传输数据是,以一个段为单位(每次发送一个数据包),每发一个段需要一次确认应答,这样就难免存在这样的缺点:包的往返时间越长,通信性能就越低. 为解决 ...

  3. msp430学习笔记-时钟及延时函数

    引用:http://blog.chinaunix.net/uid-24343357-id-3271380.html MCLK默认时钟源是DCOCLK,SMCLK默认时钟源也是DCOCLK,DCOCLK ...

  4. Spring.NET学习笔记1——控制反转(基础篇)

    在学习Spring.NET这个控制反转(IoC)和面向切面(AOP)的容器框架之前,我们先来看一下什么是控制反转(IoC). 控制反转(Inversion of Control,英文缩写为IoC),也 ...

  5. JavaScript学习笔记——流程控制

    javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分 ...

  6. Spring学习笔记——01 控制反转

    想一下之前学的Java,如果某个类需要引用某个对象,则需要手动new一个出来.这样带来的一个问题就是,若被引用的类发生改动或被删除,则引用它的所有类都会报错.因为两个类耦合在一起了.解决的办法就是不由 ...

  7. Java 学习笔记 线程控制

    题目一 本质上来说,线程是不可控制的,线程的执行是由CPU资源分配决定的,我们无法干预系统CPU的资源分配,但我们可以增加条件来让线程按照我们的预想顺序来执行. 比如.如果当前的执行的线程不满足我们所 ...

  8. Go语言学习笔记-流程控制(二)

    Go语言流程控制 字典类型Map 1.上节遗留:map字典类型 变量声明:var myMap map[string] PersonInfo 其中,myMap是变量名,string是键的类型,Perso ...

  9. FMS Dev Guide学习笔记(权限控制)

    一.开发交互式的媒体应用程序 1.关于访问(权限)控制     当一个用户访问服务器的时候,默认情况下,他可以访问所有的流媒体文件和共享对象.但是你可以使用服务端ActionScript为流媒体文件和 ...

随机推荐

  1. JSP执行过程详解

    复习JSP的概念 JSP是Java Server Page的缩写,在传统的HTML页面中加入JSP标签和java的程序片段就构成了JSP. JSP的基本语法:两种注释类型.三个脚本元素.三个元素指令. ...

  2. setClickable(false)问题处理

    在项目中遇到一个小问题 就是 设置btn的 点击不可以 setClickable(false)  结果发现还是有问题 查了半小时代码之后 才发现 是顺序问题 如果先设置点击监听setOnClickLi ...

  3. 【asp.net爬虫】asp.NET分页控件抓取第n页数据 javascript:__doPostBack

    最近在模拟HTTP请求抓取数据,但是服务器是asp.net开发的 分页控件代码 <tr> <td align="left">共&nbsp210&am ...

  4. Android RecyclerView 瀑布流

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...

  5. IOS UIButton使用详解

    第一.UIButton的定义 UIButton *button=[[UIButton buttonWithType:(UIButtonType); 能够定义的button类型有以下6种, typede ...

  6. Zlib文件压缩和解压

    开源代码:http://www.zlib.net/zlib使用手册:http://www.zlib.net/manual.htmlzlib wince版:http://www.tenik.co.jp/ ...

  7. PHP接口的声明与引用

    PHP接口的声明与引用 <?php//遵循规律:先继承,后接口//单继承,多接口class lei{function fangfa(){return "中国电信提醒您:<br&g ...

  8. Python开发【第七篇】:面向对象 和 python面向对象进阶篇(下)

    Python开发[第七篇]:面向对象   详见:<Python之路[第五篇]:面向对象及相关> python 面向对象(进阶篇)   上一篇<Python 面向对象(初级篇)> ...

  9. 数据库内存泄漏——A SQLiteConnection object for database '/data/data/.../databases/....db' was leaked!

      详细异常: A SQLiteConnection object for database '/data/data/.../database/....db' was leaked!  Please ...

  10. .net框架介绍

    .net 一般指 .net Framework框架,是一种平台,一种技术 C# 是一种编程语言,可以开发基于.net平台的应用 Java 既是一种技术,也是一种语言 .net可以开发桌面应用程序    ...