stm8s 时钟库函数选择内部RC初始化

//本文选择16M内部RC震荡,分频为1 即系统时钟为16M
void CLK_HSICmd(FunctionalState NewState)
{

    /* Check the parameters */
    assert_param(IS_FUNCTIONALSTATE_OK(NewState));

    if (NewState != DISABLE)
    {
        /* Set HSIEN bit */
        CLK->ICKR |= CLK_ICKR_HSIEN;
    }
    else
    {
        /* Reset HSIEN bit */
        CLK->ICKR &= (u8)(~CLK_ICKR_HSIEN);
    }

}
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 &= (u8)(~CLK_CKDIVR_HSIDIV);

    /* Set High speed internal clock prescaler */
    CLK->CKDIVR |= (u8)HSIPrescaler;

}

void CLK_Configuration(void)
{
   CLK_HSICmd(ENABLE);/* Set HSIEN bit */

  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); /* Fmaster = 16MHz */

}

//初始化时,调用以下函数即可:
CLK_Configuration();

stm8s 时钟库函数选择内部RC初始化

时间: 2024-08-11 07:43:01

stm8s 时钟库函数选择内部RC初始化的相关文章

STM8S TIM1库函数应用

个人觉得ST的库函数用起来还是挺不错的,之前都是使用自己写的函数,容易改出错,以下是验证过的,TIM1定时100微妙中断一次. void TIM1_TimeBaseInit(u16 TIM1_Prescaler, TIM1_CounterMode_TypeDef TIM1_CounterMode, u16 TIM1_Period, u8 TIM1_RepetitionCounter) { /* Check parameters */ assert_param(IS_TIM1_COUNTER_MO

STM8S TIM4库函数应用

void TIM4_TimerInit(u8 Timer4Time) { assert_param(IS_TIM4TIMERTIME_OK(Timer4Time)); TIM4_DeInit();//复位TIM4所有参数 TIM4_TimeBaseInit(TIM4_PRESCALER_16,Timer4Time);//16M/16= 1M CYCLE=1/1=1U 100us中断一次 //选择16分频 16M/16=1M 周期为1us TIM4_Cmd(ENABLE);//使能计时器 TIM4

STM32时钟库函数RCC_DeInit介绍

void RCC_DeInit(void) { RCC->CR |= (uint32_t)0x00000001; //开启内部8MHz时钟 #ifndef STM32F10X_CL //STM32F10X_CL指的是STM32互联系列微处理器 RCC->CFGR &= (uint32_t)0xF8FF0000; //其它类型处理器的CFGR寄存器中27-31位是保留位,24-26为MCO位 #else //而互联型处理器的CFGR寄存器中,28-31位是保留位,24-27位属MCO R

STL——静态常量整数成员在class内部直接初始化

如果class内含const static integral data member,那么根据C++标志规格,我们可以在class之内直接给予初值.所谓integral泛指所有的整数型别(包括浮点数),不单只是指int,下面是一个例子: #include<iostream> using namespace std; template <typename T> class testClass { public: static const double _datai=1.2; stat

STM8S时钟配置CLK_HSIPrescalerConfig与CLK_SYSCLKConfig区别

STM8S的时钟配置通过:CLK_CKDIVR寄存器,而CLK_CKDIVR一个是配置HSI分频,另一个是配置CPU的分频 static void CLK_Config(void){ CLK_DeInit(); /* Clock divider to HSI/1 */ CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);  // 只配置HSI分频率,CPU分频率1 /* Output Fcpu on CLK_CCO pin */ CLK_CCOConfig

静态常量整数成员在class内部直接初始化

1 #include <vector> 2 #include <deque> 3 #include <algorithm> 4 #include <iostream> 5 #include <ostream> 6 #include <iterator> 7 using namespace std; 8 template <typename T> 9 class conststaticconstant 10 { 11 pub

STM32系统时钟

一.时钟树 STM32有4个时钟源: 1)HSE(高速外部时钟源) 外部晶振作为时钟源,范围为4~16MHz,常取为8MHz 2)HSI(高速内部时钟源) 由内部RC振荡器产生,频率为8MHz,但不稳定 3)LSE(低速外部时钟)   以外部晶振作为时钟源,主要供给实时时钟模块,一般用32.768KHz. 4)LSI(低速内部时钟)         由内部RC振荡器产生,也是提供给实时时钟模块,频率约为40KHz. 二.系统启动过程中时钟设置 以使用STM32库函数SystemInit为例进行说

STM32的复位和时钟控制(RCC)

1.1          复位 参考<STM32参考手册> 1.2          stm32的时钟系统 stm32时钟树: 当HSI被用于作为PLL时钟的输入时,SYSCLK的最大频率不得超过64MHz stm32有以下四种时钟源(内部时钟源起振较快,刚上电时默认使用内部时钟源,外部时钟源叫稳定精确): 高速外部时钟(HSE):外部晶振产生8MHz的时钟,为系统提供更为精确的时钟. 高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz. 低速外部时钟(LSE):外部晶振产生32.7

STM32的独立看门狗

STM32 内 部自带了 2 个看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG) STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然 有效.这里需要注意独立看门狗的时钟是一个内部 RC 时钟,所以并不是准确的 40Khz,而是 在 30~60Khz 之间的一个可变化的时钟,只是我们在估算的时候,以 40Khz 的频率来计算,看 门狗对时间的要求不是很精确,所以,时钟有些偏差,都是可以接受的. 首先我们得讲解一下看门狗的原理.这个百度百科里面有很详细