• stm32系统时钟配置,标准库v3.5


    新芯片配置第一个工作就是要保证系统时钟是对的

    1.虽然SystemInit()会在main之前被执行,但我们可以手动调用此函数,以利于我们跟踪时钟是否配置正确。此函数位于

    2.SystemInit()下找到SetSysClock();

    3.可以看到有很多个宏,如果你没去掉注释是跟踪不过去的,只能一个一个试,比如跟踪到SYSCLK_FREQ_72MHz,但你的系统时钟最高只能是36MHz,那就要如下修改,注释SYSCLK_FREQ_72MHz,去掉SYSCLK_FREQ_36MHz的注释

    4.在主函数调用RCC_GetClocksFreq(&RCC_ClocksFreq);在此函数后打断点,观察Watch1窗口的数值是否是36MHz,如果是则OK。

     5.如换算成10进制还不是36MHz,则继续跟踪SetSysClock()->SetSysClockTo36(),发现函数里面有针对PLL倍频和分频设置,根据芯片型号选择更改,CL 或者其他,库函数有个缺点就是CL型号的芯片默认外部晶振是25M,其他型号是8M,当我们接12M时就要更改此文件了。

    首先要在stm32f10x.h把HSE_VALUE改成实际晶振值,再在system_stm32f10x.c下计算PLL分频,配置好参数让它计算到36M。再按照步骤4查看是否对了。

    6.目标结果

     经过上图修改,12M / 2 * 6 = 36M,可以看到下图SYSCLK_Frequency是0x02255100,即36000000,修改OK

  • 相关阅读:
    cookie、 sessionStorage 、localStorage之间的区别和使用
    CSS清除浮动大全共8种方法
    需要了解的前端常用js库
    let与const的区别
    java webservice的多种实现方法汇总
    iframe和frame的区别
    Iframe的应用以及父窗口和子窗口的相互访问
    HTML5标签改变
    flex之组件简单应用
    Flex控件之repeater和radioButton应用
  • 原文地址:https://www.cnblogs.com/ycpkbql/p/9106108.html
Copyright © 2020-2023  润新知