系统时钟,是整个芯片的心脏,如果没有了它,就等于人没有了心跳;在实际工程应用中,每当使用一个外设时,首先需要做的就是打开该外设对应的时钟; 这样的好处就是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果(低功耗);
寄存器是由D触发器组成的,只有送来了时钟,触发器才能被改写值。任何MCU的任何外设都需要有时钟,8051也是如此;STM32为了让用户更好地掌握功耗,对每个外设的时钟都设置了开关, 让用户可以精确地控制,
关闭不需要的设备,达到节省供电的目的。51单片机不用配置IO时钟,只是因为默认使用同一个时钟,这样是方便,但是这样的话功耗就降低不了。51中某个功能不需要,
但是它还是一直运行。stm32中当你想关闭某个IO的时候,关闭它相对应的时钟使能就是了; ARM的芯片都是这样,外设通常都是给了时钟后,才能设置它的寄存器(即才能使用这个外设),
这么做的目的是为了省电,使用了所谓时钟门控的技术。
1.时钟分类(stm32所有型号的时钟分为4类)
①、HSI 是高速内部时钟(High Speed Internal Clock Signal)
②、HSE是高速外部时钟(High Speed External Clock Signal)
③、LSI 是低速内部时钟(Low Speed Internal Clock Signal)
④、LSE是低速外部时钟(Low Speed External Clock Signal)
①、HSI内部高速时钟,RC振荡器,频率为8MHz,当HSE故障时,系统时钟会自动切换到HSI,直到HSE启动成功,相对HSE精度小,受温度影响较大,会有温漂。
②、HSE外部高速时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz,多使用8MHz/12MHz。
③、PLL锁相环倍频时钟,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。
STM32具有以下两个次级时钟源:
①、LSI内部低速时钟,RC振荡器,频率为30~60kHz不等,一般取40kHz,该 RC 用于驱动独立看门狗,也可选择提供给 RTC 用于停机/待机模式下的自动唤醒。②、LSE外部低速时钟,接频率为32.768kHz的石英晶体,主要做RTC时钟源;
(使用32.768kHz是因为2的15次方为32768,32.768kHz的晶振产生的时钟信号经过15次分频后,便会产生频率为1Hz的信号,即为秒脉冲信号 )
keil软件版本:V5.35.00
st官网:STM32 固件 - 意法半导体STMicroelectronics
单片机型号:STM32F103VET6
1、标准库中配置系统时钟分析
1)系统时钟配置的相关代码在这里哦
2)配置详情及描述(stm32)
3)另外补充一个例子(gd32)
2、重新定义并初始化函数
由上文代码可知,程序运行起来会首先执行启动文件,调用systeminit()函数,最终初始化系统时钟;
如需改变时钟配置,可以在系统时钟配置文件中修改;但是为了不破坏库函数的完整性,可重新定义并调用初始化函数;
一般情况下,使用HSE经分频倍频后来配置系统时钟;
1)以HSE配置系统时钟为例,按照时钟树流程来完成函数:
使能MCO,使用示波器抓取波形
波形如下:(使用HSE 8*9 = 72MHz; 使用HSE(超频) 8*16 = 128MHz)
2)以HSI作为系统时钟
波形如下:(使用HSI 8/2 * 16 = 64MHz; 使用HSI 8/2*8 = 32MHz)
系统时钟配置需要根据具体的时钟框图,先设置好时钟源,AHB、APB1、APB2的分频系数;再设置好PLL倍频和分频;最后使用SW切换选择系统时钟来源即可。
1、《
2、[野火EmbedFire]《STM32库开发实战指南——基于野火指南者开发板》;
3、野火F103-指南者bilibili教程视频【150集-野火F103霸道/指南者视频教程】-中级篇_哔哩哔哩_bilibili;
4、32系统时钟配置 - Darren_pty - 博客园 (cnblogs.com)
5、STM32F4_RCC系统时钟配置及描述 - strongerHuang - 博客园 (cnblogs.com)
6、STM32F2系列系统时钟默认配置 - MyBooks - 博客园 (cnblogs.com)
7、STM32入门系列-STM32时钟系统,时钟使能配置函数 - STM32嵌入式开发 - 博客园 (cnblogs.com)
小弟才疏学浅,如有错误或不足之处,还请大佬批评指正,深表感谢!
到此这篇时钟代码教程(时钟配置代码)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/do-yfwjc/81435.html