历史上的今天
返回首页

历史上的今天

今天是:2025年01月04日(星期六)

2021年01月04日 | STM32F103的时钟配置源码学习记录

2021-01-04 来源: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作为系统时钟的来源。

      

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

       

        

 


推荐阅读

史海拾趣

Abbotec Incorporated公司的发展小趣事

Abbotec Incorporated公司自成立以来,一直致力于电子技术的研发与创新。在某一年,公司研发团队成功开发出一款具有划时代意义的芯片,这款芯片在性能上大幅提升,同时降低了能耗。这一技术突破迅速引起了业界的关注,Abbotec因此获得了大量的订单,公司规模迅速扩大。

Hifn Inc公司的发展小趣事

Abbotec深知人才是企业发展的核心。因此,公司一直注重人才培养和团队建设。公司定期举办各种培训活动,提升员工的专业技能和管理能力。同时,Abbotec还积极引进外部优秀人才,为公司的发展注入新的活力。

BILIN公司的发展小趣事

随着技术的不断成熟,Abbotec开始将目光投向国际市场。公司积极参与国际电子展会,与多家国外企业建立了合作关系。通过与这些企业的合作,Abbotec不仅将产品销往全球各地,还引进了一些先进的生产技术和管理经验,进一步提升了自身的竞争力。

Altus Technology Inc公司的发展小趣事

随着公司规模的不断扩大,Altus开始实施全球化战略,积极拓展海外市场。公司通过与国际知名企业的合作,成功将产品打入国际市场,并建立了完善的销售网络和客户服务体系。同时,Altus还积极参与国际电子行业的交流和合作,不断吸收和引进国际先进技术和管理经验,提升了公司的整体竞争力。

安谱隆(Ampleon)公司的发展小趣事

2022年,无锡锡产微芯半导体有限公司完成了对安谱隆的收购。这一交易金额超过百亿元,是当年中国最大的半导体并购交易事件之一。锡产微芯的收购不仅为安谱隆提供了更广阔的发展平台,也为其在半导体行业中的进一步发展注入了新的活力。在锡产微芯的支持下,安谱隆开启了新的发展阶段,继续在全球射频市场中发挥着重要作用。

这五个故事展示了安谱隆从恩智浦剥离出来到被锡产微芯收购的发展历程。在这个过程中,安谱隆不仅展现了其强大的技术实力和市场潜力,也经历了资本市场的波折与挑战。然而,正是这些经历使得安谱隆更加成熟和稳健,为其未来的发展奠定了坚实的基础。

Hasco Relays and Electronics International Corp公司的发展小趣事

随着时间的推移,Harris公司逐渐与国防工业建立了紧密的联系。在二战及随后的冷战时期,Harris为军事机构提供了大量的通信设备和技术支持,包括雷达系统、导航系统以及加密通信设备等。这些技术不仅帮助军队在战场上保持高效的通信能力,还极大地提升了国家的国防安全水平。Harris在国防领域的卓越表现,进一步巩固了其在电子行业中的领先地位。

问答坊 | AI 解惑

**** 如果你在EVC中用过浏览网页的控件的话请进来帮帮我?(很简单的,得到答案后立即赠分) ****

我在EVC下用到了浏览网页的控件 HWND  m_hCtlHtml = ::CreateWindow(TEXT(\"DISPLAYCLASS\"), NULL, WS_VISIBLE, 0, 0, 100, 100, m_hWnd, NULL, g_hInst, NULL); 网页已经可以打开了,但是我现在想实现的功能是,不通过拖动滚动条, 而 ...…

查看全部问答>

2005年电子竞赛文集

本帖最后由 paulhyde 于 2014-9-15 09:42 编辑   好资料  …

查看全部问答>

你们在使用IAR时有没有觉得它内存泄漏了?

我总感觉它有内存泄漏,然后过不了多久,资源就耗尽了……有时编辑器还出现文字丢失,开始是注释全没了,然后是其它文字也没了,再滚动几下,可能就死掉了,我晕……难道是我的系统有问题…………………

查看全部问答>

高效免费的ST7专用16KC编译器

此帖内容为2年前所发,二姨打扫卫生时把旧货全扔了,我跑到千里之外把它捡回来了。ST7的C编译器主要是COSMIC 和HIWARE(现在叫METROWERKS)。这两种C编译器的早期免费版本功能太弱(1~2k的程序量),基本没甚么实用价值。 COSMIC最 ...…

查看全部问答>

STM32用SWD调试时要烧写FLASH是不是一定要接RESET?

一直在核心板上玩 103ZE 都是些小程序  都是在RAM中调试的 而且只接三根线GND SWDIO SWCLK (VCC 直接接JLINK内部的) 很爽利 不过今天要试IIS 要放一个大的数据进去 于是要烧到FLASH中去  发现很快进度条走完 & ...…

查看全部问答>

430串口通讯问题

//两块电路板,单片机都是MSP430F427,一块通过串口发送,另一块通过串口接收,现在问题是 //发送板一直没有发出信号,测量输出端口(TX),一直保持高电平,通过硬件仿真跟踪发现只要 //将该串口引脚设置为串口功能该引脚(TX)就一直处于高电平 ...…

查看全部问答>

帮帮忙 程序进不了中断

#include \"msp430x14x.h\" void  main (void){ WDTCTL = WDTPW + WDTHOLD; //unsigned char i;  /*------选择系统主时钟为8MHz-------*/    /*BCSCTL1 &= ~XT2OFF;     &nb ...…

查看全部问答>

直线位移传感器原理与使用要求

  直线位移传感器是通过电位器元件将机械位移转换成与之成线性或任意函数关系的电阻或电压输出的装置。普通直线电位器和圆形电位器都可以分别用作直线位移和角位移传感器。但是,为实现测量位移目的而设计的电位器,就一定要要求在位移变化和电 ...…

查看全部问答>