历史上的今天
返回首页

历史上的今天

今天是:2025年06月18日(星期三)

正在发生

2018年06月18日 | STM32F103的时钟配置源码学习记录

2018-06-18 来源:eefocus

      时钟的配置源码在文件system_stm32f10x.c中。程序先通过判断使用的f10芯片的种类,选择你要的系统时钟频率SYSCLK。我用的芯片系统频率最高为72Mhz,芯片容量为大容量型,所以预编译后选择的是SYSCLK_FREQ_72MHz  72000000。 

      

    下面这段代码在时钟配置中没什么用,只是在以后的程序中可以通过SystemCoreClock来读出系统时钟的频率。

     

    下面代码通过宏定义来选择配置系统时钟的函数,上边函数定义了SYSCLK_FREQ_72MHz,所以程序执行void SetSysClockTo72(void)。跳转到这个函数

       

       下面这段函数不重要,直接跳过

       

       这三行代码首先是讲AHB总线时钟等于系统时钟,再将APB2上时钟等于HCLK的一分频,APB1时钟等于HCLK的二分频。结果即为HCLK=72MHz,PCLK2=72MHz,PCLK1=36MHz.。刚好为各自总线上允许的最高频率。

       

       再看下图,跳过它上面的代码。else下的代码是通过配置寄存器设置锁相环,从锁相环出来的频率为9倍的频外部高速时钟。

      

       最后使能锁相环PLL,等PLL准备好后,将PLL作为系统时钟的来源。

      

        看懂时钟配置源代码,首先要弄懂时钟系统框图,两个时钟图差不多,但标注有点区别

       

        


推荐阅读

史海拾趣

问答坊 | AI 解惑

DSP入门需要注意的事项

开始入门DSP的一些注意事项 本文来自于HELLODSP。 在作硬件之前,需要看的资料有: 1.芯片数据手册,描述该器件的引脚信号、片上资源、电气指标和机械特性(如封装等),在做硬件前必看(TMS320F281x数据手册SPRS174J) 2.某一系列DSP的CPU和指 ...…

查看全部问答>

29款AVR论文全集

29款AVR论文全集 …

查看全部问答>

请问,常用的定位芯片有哪些?谢谢!

     请教各位,常用定位芯片有哪些。我现在打算做一个与无线网络有关的东西。要在上位机上得到网络中每个zigbee模块的具体位置,当zigbee模块的位置发生变化时,上位机软件上各个节点的相对位置也会发生改变。但是我的zigbee ...…

查看全部问答>

第一次搞嵌入,问几个简单的问题。每次只能100分,就分开问了。问题1

环境是有个bs架构的程序,数据库是oracle10g,需要一个pda做一些辅助工作。 因此,需要开发一个pda上的一个程序,pda操作系统wince5,开发工具vs2005,语言c#,数据库据说只能用sql ce。 每次用pda前,都需要与oracle同步数据,是不是需要做一个p ...…

查看全部问答>

有这样的STM32吗?

请推荐个STM32 或者别的 :有 CAN,UART,至少60个GPIO。。。跑好ucos-ii,最好不要 BGA封装的。呵呵,,,,请问1K片的价格是多少,开发板的价格呢?我初步选了个 STM32F103V8T6 。。。…

查看全部问答>

LM3S8962 NRF24L01 收发

最近做一个LM3S8962控制的NRF24L01 收发模块,移植了51的代码 结果出现很多问题 论坛里也没找到相关帖子,各位大侠有谁做过这个模块 望不吝赐教 最好有源代码 比较相近的也行 多谢啦!! [ 本帖最后由 CC_心雨 于 2011-4-11 17:23 编辑 ]…

查看全部问答>

达芬奇DM812xIP网络摄像机参考设计

$(\'swf_Na9\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/XMjY3NzUwOTk2/v.sw ...…

查看全部问答>

各位帮忙看看为啥无法进入接收中断

#include <msp430x14x.h> #define uint unsigned int#define uchar unsigned char uchar RX1Flag=0;//接收完成标志uchar TX1Flag=0;//发送中断标志uchar RX1_BUF[];uchar TX1_BUF[];uint RX1_Len;uint TX1_Len; void Init_UART1(void){  ...…

查看全部问答>

请教如何对整个系统进行标识化

大家好,我现在在做DSP2812控制的三相PWM整流双闭环控制控制,在编程的时候我看到很多人都说先要对系统进行标幺化处理,然后再定标变成Q格式数据。我已经知道对一个单个的量怎么样进行标幺化,即就是除以基值,但是现在的问题是对这样一个系统我不 ...…

查看全部问答>