当前位置:首页 > 单片机 > 单片机
[导读]STM8S具有一个强大的时钟系统,内部提供一个高速16M的RC振荡器,和一个低速128K的RC振荡器。时钟控制器功能强大而且灵活易用。其目的在于使用户在获得最好性能的同时,亦能保证消耗的功率最低。用户可独立地管理各个

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):


voidSet_HSISpeed(void)

{

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

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

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

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

CLK_CKDIVR=0x00;//HSI不分频

}



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


voidSwitch_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);//关闭切换

}

voidSwitch_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);//关闭切换

}


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


voidSet_CPU_Full_Speed(void)

{

CLK_CKDIVR=0x00;//HSI不分频

}

voidSet_CPU_Low_Speed(void)

{

CLK_CKDIVR=0x07;//HSI128分频

}


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



附上stm8s在IAR环境下的项目工程,包括了SPI、IIC、PWM、AWU、USART、EEPROM等片上硬件的初始化代码。

http://download.csdn.net/detail/devintt/9454188


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为什么插入buffer能够增加驱动能力?

关键字: clock buffer

一、系统复位 复位除了部分RCC寄存器和备份区域以外的其他所有的寄存器; 来源: NRST引脚上的低电平(外部复位) WWDG计数结束 IWDG计数

关键字: 复位 时钟控制

一、系统复位 复位除了部分RCC寄存器和备份区域以外的其他所有的寄存器; 来源: NRST引脚上的低电平(外部复位) WWDG计数结束 IWDG计数

关键字: 时钟控制 系统复位

今天查看STM32资料时,对输出速度2M 10M 50M不是很了解,再加上移植ARF2496K程序到STM32时出现意外情况。一、STM8S端作为接收端和发送端时接收到的数据都正常。二、发送端(STM8S),接收端(ST...

关键字: io口 stm32f stm8s 输出速率

STM8S单片机开发环境由三大部分组成,包括PC机上的开发软件(集成开发软件、驱动程序等)、调试&编程器ST-LINK、目标单片机电路板。如下图所示:1、PC机上开发软件PC机上的软件包括:ST-LINK驱动程序...

关键字: stm8s 单片机入门 开发环境

一直理解STM8S定时器有点问题,所以在做定时器时候,出现了好奇怪的问题.比如,今次在理解预装载值时候出现问题,导致动态调整预装载值均无法得到自己预期的效果.我们可以看参考手册定时器这块的描述,或者上网找一些文章

关键字: stm8s 定时器溢出 重装载

Ⅰ、写在前面完事开头难,只要肯努力;师傅领进门,修行看个人;当你看到本文,说明你是幸运的,作者接下来推出的一系列STM8S教程,将助你踏入STM8S的世界。本文是STM8S教程的开始,写给刚入门STM8S的朋友。学习本文

关键字: gpio stm8s 基础知识

在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。其实是四个时钟源,如下图所示(灰蓝色),PLL是由锁相环电路倍频得到PLL时钟。  ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。  ②、H...

关键字: rcc STM32 时钟控制

一、 STM8S 外部中断进行唤醒先了解一下STM8S的中断资源再看看STM8S的中断管理。STM8S采用软件优先级和硬件优先级来控制一个中断的响应,先比较软件优先级只有当软件优先级一致时才会比较硬件优先级,由于硬件优先...

关键字: stm8s 窗口看门狗 中断唤醒 定时唤醒

前面讲过两个常用的串口,UART和SPI,这次这次讲解一下另一个常用的串口:IIC(I2C)通信科普IIC:一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到IIC总线设备上的串行数据SDA都接到...

关键字: iic stm8s 主机通信
关闭
关闭