STM8S之时钟设置

来源:互联网 发布:淘宝自粘墙纸好用吗 编辑:程序博客网 时间:2024/06/05 12:06

昨天被安排做别的工作,耽误一天,今天继续写,坚持学习。

1,STM8S的4种时钟源可用做主时钟:
● 1-24MHz高速外部晶体振荡器(HSE)
● 最大24MHz高速外部时钟信号(HSE user-ext)
● 16MHz高速内部RC振荡器(HSI)
● 128KHz低速内部RC(LSI)
各个时钟源可单独打开或关闭,从而优化功耗。

2,系统的启动

为使系统快速启动,复位后时钟控制器自动使用HSI的8分频(HSI/8)做为主时钟。其原因为HSI的稳定时间短,而8分频可保证系统在较差的VDD条件下安全启动。

另外,stm8s还可以切换时钟源,有自动和手动两种方法,先不做讨论。

3,几个时钟寄存器

时钟状态寄存器(CLK_CMSR)

 

 

主时钟切换寄存器(CLK_SWR)

可以知道系统复位后,会自动用内部高速时钟作为时钟源。

void main(void){  /* Infinite loop */  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//设置为内部高速时钟    while (1)  {  }  }

CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1)函数设置内部时钟不分频。

void CLK_HSIPrescalerConfig(CLK_Prescaler_TypeDef HSIPrescaler){    /* check the parameters */    assert_param(IS_CLK_HSIPRESCALER_OK(HSIPrescaler));    /* Clear High speed internal clock prescaler */    CLK->CKDIVR &= (uint8_t)(~CLK_CKDIVR_HSIDIV);    /* Set High speed internal clock prescaler */    CLK->CKDIVR |= (uint8_t)HSIPrescaler;}

所以,系统复位后直接调用CLK_HSIPrescalerConfig函数,就设置系统时钟为不分频的内部高速时钟。

0 0
原创粉丝点击