历史上的今天
返回首页

历史上的今天

今天是:2025年04月23日(星期三)

正在发生

2021年04月23日 | STM32再学习——时钟初始化

2021-04-23 来源:eefocus

STM32F系列微处理器,或者说是Cortex-M3内核的MCU内,都集成了一个叫PLL的东西。PLL就是锁相回路或锁相环(PhaseLockedLoop),用来统一整合时脉讯号,使内存能正确的存取资料。PLL用于振荡器中的反馈技术,将外部的输入信号与内部的振荡信号同步,锁相环路的基本方框图如下图所示。一句话,PLL用来控制STM32F的时钟频率的。总而言之,STM32F系列MCU使用了这个东西,而我们在MCU上电之后,也就要对其正确的初始化,这样,我们才能得到我们需要的时钟配置。


本文引用地址:http://www.eepw.com.cn/article/182408.htm



在ST公司的外设固件库的示例里,对于工程项目文件,ST并没有在启动函数main()里初始化PLL,因为其已经在硬件初始化阶段完成对系统时钟的配置。这样也就带了一个问题,ST库里的均使用了外设8MHz的晶振,而我们平时的项目就一定采用的是这个频率,实际配置的低于8MHz,MCU不能全速运行,高于8MHz,外设时钟即配置失败,甚至无法运行。那么如何重新配置时钟就需要我们一线的工程师们重新设计了。


ST库里的硬件初始化阶段的代码是用寄存器方式编写的,不利于我们阅读与参考。也正是出于这个原因,小编使用库函数重新编写了STM32F系统时钟PLL初始化过程,与大家分享,期待共同提高与进步。


/*********************************************************************************************************


**Functionname:staticvoidSysClockInit(void)


**Descriptions:配置SYSCLK,HCLK,PCLK2与PCLK1


**Createdby:JobsZheng


**CreatedDate:2013-03-0609:35


*********************************************************************************************************/


staticvoidSysClockInit(void)


{


RCC_DeInit();/*RCC重置*/


RCC_HSEConfig(RCC_HSE_ON);/*(使能HSE)*/


HSEStartUpStatus=RCC_WaitForHSEStartUp();/*(等待HSE使能结束)*/


if(HSEStartUpStatus==SUCCESS)


{


FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);


FLASH_SetLatency(FLASH_Latency_2);


RCC_HCLKConfig(RCC_SYSCLK_Div1);/*配置HCLK=SYSCLK*/


RCC_PCLK2Config(RCC_HCLK_Div1);/*配置PCLK2=HCLK*/


RCC_PCLK1Config(RCC_HCLK_Div2);/*配置PCLK1=HCLK/2*/


/*超级重要的、需要配置的地方在这里*/


/*PLLCLK=8MHz*9=72MHz*/


RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);/*RCC_PLLSource_HSE_Div1为外置晶振的分频系数;RCC_PLLMul_9为倍频数*/


RCC_PLLCmd(ENABLE);


while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)


{


}


RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);/*选定PLL为系统主时钟*/


while(RCC_GetSYSCLKSource()!=0x08)


{


}


}


else


{/*配置失败将程序停留在这里*/


while(1)


{


}


}


}


上述C语言的文件仍需要#include"stm32f10x.h"的头文件来调用ST固件库。


就像ST官方说明文档所说,STM32F系列MCU支持4M-16MHz的外置晶振,因此,大家在没有官方默认的8Mhz晶振下,大可不必苦恼,只需要添加上面的这个初始化函数,你就可以任意使用外置晶振了。


祝大家工作顺利,编程快乐^_^


推荐阅读

史海拾趣

Davies Molding公司的发展小趣事

Davies Molding公司深知,人才是企业发展的核心动力。因此,公司高度重视团队建设与人才培养。通过建立完善的培训体系,Davies Molding公司不断提升员工的技能和素质,打造了一支高素质、专业化的团队。这支团队不仅为公司的发展提供了有力保障,还为行业的进步做出了积极贡献。

ATO SOLUTION公司的发展小趣事

随着全球环保意识的日益增强,ATO SOLUTION公司积极响应绿色环保号召,将环保理念融入企业发展和产品生产中。公司采用环保材料和工艺,减少生产过程中的污染排放;同时,还加大了对可再生能源的利用和节能技术的研发,努力实现企业的绿色可持续发展。这种环保实践不仅提升了公司的社会形象,也为公司的长期发展注入了新的动力。


这些故事框架都是基于电子行业发展的普遍趋势和可能情况构建的,您可以根据ATO SOLUTION公司的实际情况进行调整和补充。在撰写具体故事时,请确保内容的真实性和客观性,避免加入主观评价或猜测。

峰岹(Fortior Tech )公司的发展小趣事

随着公司规模的扩大,ATO SOLUTION公司开始实施全球化战略布局。公司先后在多个国家和地区设立了研发中心和生产基地,充分利用当地资源和市场优势,提升整体竞争力。同时,公司还加强了与国际知名企业的合作,共同推动电子行业的发展和创新。

富捷(FOJAN)公司的发展小趣事

自成立以来,富捷电子始终将技术创新视为企业发展的核心驱动力。公司投入巨资建立了一支国际专业的晶片电阻核心技术研发团队,专注于贴片电阻、合金电阻、车规电阻等产品的研发与生产。近年来,富捷电子成功研发出高端抗静电汽车晶片电阻FQS系列产品,并建设了“高端抗静电汽车晶片电阻智能工厂”,实现了从原材料入库到成品出库的全程智能化、自动化操作。这一创新不仅提升了产品性能,还满足了汽车电子行业对元件高可靠性、高稳定性的严格要求,推动了公司在汽车电子领域的快速发展。

驰兴电感(Coilank)公司的发展小趣事

驰兴电感深知客户是企业发展的根基。公司始终坚持以客户为中心的服务理念,为客户提供全方位、个性化的服务。无论是产品选型、技术支持还是售后服务,驰兴电感都能及时响应客户需求,提供满意的解决方案。这种贴心的服务赢得了客户的信赖和支持,也为公司的持续发展奠定了坚实基础。

AnalogicTech公司的发展小趣事

AnalogicTech深知品质是企业生存和发展的关键。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司还注重客户反馈和需求,不断优化产品和服务,以满足客户的期望和需求。这种对品质的执着追求和对客户的深度关注,使得AnalogicTech赢得了众多客户的信任和忠诚。

问答坊 | AI 解惑

变频彩电、变频技术与逐行扫描技术

变频彩电、变频技术与逐行扫描技术 变频彩电是近几年新推出的一种无闪烁、高清晰度彩电,收视效果可与HDTV相媲美,它能够兼容数字和模拟电视标准,可以接收普通电视信号,并显示比普通电视清晰度更高、更稳定的图象;也能作为数字电视信号的显示器。因 ...…

查看全部问答>

IPTV标准化实践

本帖最后由 jameswangsynnex 于 2015-3-3 20:02 编辑 为了促进IPTV产业的发展,目前中国IPTV标准规范的制定工作正在如火如荼的进行着,参与成员涉及范围空前广泛,包含电信运营商、内容运营商、IPTV设备提供商、IPTV系统集成商、IPTV技术提供商、 ...…

查看全部问答>

取字模软件

取字模软件自己买[url=https://bbs.eeworld.com.cn/viewthread.php?tid=72780&extra=page%3D2&page=1&2]开发板[/url]时送的取字摸软件 很好用    要的快下啊…

查看全部问答>

面试最恼火的问题?

这几天忙着落实工作,头都大了.面试时最最头痛的就是一个问题! 本人22岁,工作3年,要求薪水3500,却碰到有老板说“电源说难不难,说简单也不简单,也有人拿5K,6K,8K,甚至1W.” 就是没有太多的经验和年龄不大才要求不是很高的,我一不要求管吃管住,二不要 ...…

查看全部问答>

做好医疗电子设备的电子元器件的维修

从上世纪八十年代以来,医疗行业引进了许多先进的大型电子仪器及设备, 大到0)、核磁等,小到各种彩超、监护仪等。 随着它们的所有年限增加,陆续地从保修期进入了维修期,也有一些的设备已经进入了维修高峰期。这一点和国外发达国家医疗设备服役 ...…

查看全部问答>

GPRS频繁掉线call ready(请大侠指教)

GPRS链接上服务器后,接收数据几秒或几分钟就call ready重启了,我观察了一下出现call ready的时间间隔,没规律,随机,说明服务器没问题,用万用表测电源也没感到有问题(偶看到以前几位仁兄的帖子了),CIPSTATUS查询状态,是IP INITIAL,除了电 ...…

查看全部问答>

电子制作的好帮手!

电子制作的好帮手,学习C51单片机的好工具!学习开发二者兼顾!其实你也可以开发自己喜爱的电子产品! 淘宝店里有详细功能介绍http://shop36364130.taobao.com 330658522(点击Q我)    …

查看全部问答>

SignalTapII的使用问题

请教各位大侠关于SignalTapII应用的一个小问题。 看过一些教程,应用SignalTapII的时候直接将工程和sof文件一起编译下载到FPGA中。 那要怎样去设置输入信号的数值呢。 我要做的设计是一个编码器,需要在特定的测试用例下观测输出结果。 而调入S ...…

查看全部问答>

【一起学习器件指标】电容ESR

我们在选电容的时候最关注两个指标,一个是耐压值,一个是ESR。耐压值大家都知道,要是耐压值低于工作电压,电容会爆掉。但是ESR我就搞不清楚了,ESR到底是什么意思呢?ESR越小越好么?为啥要这样子哩?…

查看全部问答>