首页 > 代码库 > STM8S学习笔记-时钟控制1

STM8S学习笔记-时钟控制1

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

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

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

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

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

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

自动切换过程:

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

CLK_SWR = 0xE1; //  (HSI----复位值)

                            // (0xD2 ----LSI)

                             //(0xB4----HSE)

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

手动切换:

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

CLK_SWR = 0xE1; //  (HSI----复位值)

                            // (0xD2 ----LSI)

                             //(0xB4----HSE)

while(!(CLK_SWCR&0x08));

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

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时钟校准等,下次再讨论吧。