STM8S之时钟设置

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

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函数,就设置系统时钟为不分频的内部高速时钟。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值