导读:目前正在解读《关于STM8S单片机低功耗应用中时钟源切换时的注意点。》的相关信息,《关于STM8S单片机低功耗应用中时钟源切换时的注意点。》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《关于STM8S单片机低功耗应用中时钟源切换时的注意点。》的详细说明。
简介:一般正常运行时,我们使用的时HSE(外部高速时钟源),当准备进入低功耗时,我们会切换到内部高速时钟HSI(一般需要分频以降低功耗),关闭HSE(若不关闭就不会出现下面的问题,即不用看本文了)。当从低功耗退出,进入正常运行时,会切换HSE。
这时由于之前关闭了HSE,再次打开HSE时会需要一段时间才会ready,然后再由HSI切换到HSE。

//该函数可实现切换时钟源功能。HSE与HSI互切。

void Switch_SysClock(CLK_Source_TypeDef CLK_NewClock)

{

switch(CLK_NewClock)

{

case CLK_SOURCE_HSE:

//启用外部高速晶振且无分频。12M.

CLK->SWCR|=0x02; //开启切换

CLK->ECKR|=0x01; //使能外部高速晶振

while((CLK->ECKR & 0x02)==0x00); //等待HSE稳定。

CLK->SWR =0xB4;

while((CLK->SWCR & 0x01)==0x01);

CLK->CKDIVR=0x00;

CLK->SWCR&=(~0x02);//关闭切换

CLK->ICKR &= 0xFE;//关闭内部高速晶振

break;

case CLK_SOURCE_HSI:

CLK->SWCR |= 0x02;/开启切换

CLK->ICKR |= 0x01;//使能内部高速晶振

CLK->SWR = 0xE1;

while((CLK->SWCR & 0x01)==0x01);

//CLK->CKDIVR =0x08;//启用内部高速晶振且2分频。8M.

CLK->CKDIVR =0x18;//启用内部高速晶振且8分频。2M.

CLK->SWCR &= (~0x02);//关闭切换

CLK->ECKR &= 0xFE;

break;

case CLK_SOURCE_LSI:

/*

*/

default:break;

}

}

提醒:《关于STM8S单片机低功耗应用中时钟源切换时的注意点。》最后刷新时间 2024-03-14 00:59:02,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《关于STM8S单片机低功耗应用中时钟源切换时的注意点。》该内容的真实性请自行鉴别。