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);
  • 相关阅读:
    Title
    Title
    JS淘宝小广告
    JS淘宝浏览商品
    JS隐藏显示图片
    JS图片轮播
    C#连接数据库的方法
    让$(window).scroll()监听事件只执行一次
    axios发delete请求,后台收不到参数;
    .gitignore规则简介
  • 原文地址:https://www.cnblogs.com/wangyuezhuiyi/p/3275841.html
Copyright © 2011-2022 走看看