zoukankan      html  css  js  c++  java
  • 【神舟王】----时钟的学习

    对于STM32时钟的了解做一个备忘录:

    1 3.5的库 默认执行 SystemInit()函数,改函数执行后,如果使用了外部晶振,则配置HSE为PLL输入,SYSCLK=72Mhz,如果没有使用外部晶振,则配置成HSI为SYSCLK,此时SYSCLK=8MHz。

    2 在Systick的设置中,

    if (SysTick_Config(SystemCoreClock / 1000))
        {
            while(1);
        }
        TimingDelay = nus;
        while(TimingDelay != 0);

    这仅仅对于SystemCoreClock=72Mhz是对的,当SystemCoreClock不是72MHz时,要改动。

    3 加入宏定义:

    #define        SYSTICK_FREQ            (48000000)
    if (SysTick_Config(SYSTICK_FREQ / 1000))

    这样就解决问题了。

    4 SYSCLK可以是

    (1)直接是HSI

    (2)HSI二分频进入到PLL后倍频得出时钟  HSI必须二分频后才能进入到PLL,可以1到16倍数的倍频。

    但是注意,这种情况SYSCLK最大是 64MHz。

    5 可以在 RCC_Configuration 函数的最后添加一句代码

    SystemCoreClock = HSI_VALUE / 2 * 12;  //SystemCoreClock = SYSCLK_FREQ_48MHz; 

    改变 SystemCoreClock 的值。

    6 获取SYSCLK的值

    RCC_ClocksTypeDef RCC_Clock;
    RCC_GetClocksFreq(&RCC_Clock);
  • 相关阅读:
    访问者模式
    中介者模式
    策略模式
    迭代器模式
    责任链模式
    contentProvider模板
    android studio常用快捷键(不断补充)
    jqgrid表格列动态加载的实现
    Android View.onMeasure方法的理解(转载)
    activity的生命周期
  • 原文地址:https://www.cnblogs.com/wangyuezhuiyi/p/3275841.html
Copyright © 2011-2022 走看看