当前位置:网站首页 > 云服务教程 > 正文

时钟代码教程(时钟配置代码)



 系统时钟,是整个芯片的心脏,如果没有了它,就等于人没有了心跳;
  在实际工程应用中,每当使用一个外设时,首先需要做的就是打开该外设对应的时钟; 这样的好处就是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果(低功耗);
  寄存器是由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)

小弟才疏学浅,如有错误或不足之处,还请大佬批评指正,深表感谢!





















到此这篇时钟代码教程(时钟配置代码)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!







































版权声明


相关文章:

  • 苹果电脑装双系统安装教程(苹果电脑如果装双系统)2025-06-23 18:54:08
  • gmock教程(gmclock)2025-06-23 18:54:08
  • u盘制作系统盘教程win10(系统u盘制作方法win10)2025-06-23 18:54:08
  • git操作教程(git的操作)2025-06-23 18:54:08
  • m301hzn刷机(m301a刷机教程)2025-06-23 18:54:08
  • 启动盘u盘制作方法视频(启动u盘制作教程)2025-06-23 18:54:08
  • 启动盘u盘制作教程视频(u盘启动盘制作步骤视频)2025-06-23 18:54:08
  • 如何安装虚拟机软件(如何安装虚拟机软件教程)2025-06-23 18:54:08
  • win11虚拟机安装教程(虚拟机安装won11)2025-06-23 18:54:08
  • cmake教程菜鸟(cmake documentation)2025-06-23 18:54:08
  • 全屏图片