历史上的今天
返回首页

历史上的今天

今天是:2024年09月05日(星期四)

正在发生

2018年09月05日 | stm32单片机时钟理解

2018-09-05 来源:eefocus

Systick是慢速的,一般用32k的外部晶振,用来计时Sysclk是主时钟,就是给内核以及大多数外设的那个最高72M的。HCLK是高速外设时钟,是给外部设备的,比如内存,flash


SYSCLK 系统时钟,最大72MHz

HCLK :AHB总线时钟,由系统时钟SYSCLK 分频得到,一般不分频,等于系统时钟经过总线桥AHB--APB,通过设置分频,可由HCLK得到 PCLK1与PCLK2时钟不过PCLK2时钟最高可达72MHz,而PCLK1最大36MHz。PCLK2对应APB2外设。PCLK1对应APB1外设。


AHB (HCLK) 时钟 = SYSCLK = 72MHz

APB2(PCLK2)时钟 = AHB时钟 = 36MHz

APB1(PCLK1)时钟 = AHB 1/2时钟 = 72MHzADC时钟 = PCLK2 1/4 = 9MHzPLL时钟 = HSE*9 = 72MHz


时钟是STM32单片机的脉搏,是单片机的驱动源。使用任何一个外设都必须打开相应的时钟。这样的好处就是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。


STM32单片机的时钟可以由以下3个时钟源提供:


1、HSI:高速内部时钟信号 stm32单片机内带的时钟 (8M频率) 精度较差

2、HSE:高速外部时钟信号 精度高 来源(1)HSE外部晶体/陶瓷谐振器(晶振) (2)HSE用户外部时钟

3、LSE:低速外部晶体 32.768kHz 主要提供一个精确的时钟源 一般作为RTC时钟使用


stm32单片机的将时钟信号(例如HSE)经过分频或倍频(PLL)后,得到系统时钟,系统时钟经过分频,产生外设所使用的时钟。


了解stm32单片机的时钟,下面就是如何使用,我举个使用HSE时钟的例子。

设置时钟流程:

1、将RCC寄存器重新设置为默认值 RCC_DeInit

2、打开外部高速时钟晶振HSE RCC_HSEConfig(RCC_HSE_ON);

3、等待外部高速时钟晶振工作 HSEStartUpStatus = RCC_WaitForHSEStartUp();

4、设置AHB时钟 RCC_HCLKConfig;

5、设置高速AHB时钟 RCC_PCLK2Config;

6、设置低速速AHB时钟 RCC_PCLK1Config

7、设置PLL RCC_PLLConfig

8、打开PLL RCC_PLLCmd(ENABLE);

9、等待PLL工作 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

10、设置系统时钟 RCC_SYSCLKConfig

11、判断是否PLL是系统时钟 while(RCC_GetSYSCLKSource() != 0x08)

12、打开要使用的外设时钟 RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd()


在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。

  ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。

  ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。

  ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。

  ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。

  ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但


是其输出频率最大不得超过72MHz。


  系统时钟SYSCLK,它是供STM32中绝大部分部件工作的时钟源。系统时钟可选择为PLL输出、HSI或者HSE。系统时钟最大频率为72MHz,它通过AHB分频器分频后送给各模块使用,AHB分频器可选择1、2、4、8、16、64、128、256、512分频。其中AHB分频器输出的时钟送给5大模块使用:

  ①、送给AHB总线、内核、内存和DMA使用的HCLK时钟。

  ②、通过8分频后送给Cortex的系统定时器时钟。

  ③、直接送给Cortex的空闲运行时钟FCLK。

  ④、送给APB1分频器。APB1分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz),另一路送给定时器(Timer)2、3、4倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器2、3、4使用。


  ⑤、送给APB2分频器。APB2分频器可选择1、2、4、8、16分频,其输出一路供APB2外设使用(PCLK2,最大频率72MHz),另一路送给定时器(Timer)1倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器1使用。另外,APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC分频器可选择为2、4、6、8分频。


  在以上的时钟输出中,有很多是带使能控制的,例如AHB总线时钟、内核时钟、各种APB1外设、APB2外设等等。当需要使用某模块时,记得一定要先使能对应的时钟。


推荐阅读

史海拾趣

FOTEK公司的发展小趣事

福禄克公司成立于1948年,初期专注于电气测试工具的研发与生产。创始人敏锐地察觉到,随着战后全球工业化的加速,对高质量电气测试工具的需求将急剧增长。公司投入大量资源于技术研发,成功推出了首款高精度数字万用表,这一创新产品迅速在市场上占据一席之地,为福禄克奠定了技术创新的基石。此后,福禄克不断推出新品,如热成像仪、绝缘电阻测试仪等,持续引领行业技术潮流。

AVX公司的发展小趣事

AVX一直致力于绿色技术的研发与应用。在数十年的深入研发支持下,AVX的产品为各种绿色技术提供了关键的支持,如风能、太阳能和水力发电等领域。这些技术的应用旨在节省现有能源并创建可靠、价格合理的电子系统,为可持续发展做出了积极贡献。AVX在这一领域的持续投入和创新,使其在绿色技术领域取得了显著成果。

Advanced Energy公司的发展小趣事

Advanced Energy公司成立于1981年,总部位于美国科罗拉多州的丹佛市。在成立之初,AE公司便专注于电源技术的研发与创新。当时,电子行业的电源技术正处于快速发展阶段,AE公司凭借其前瞻性的技术视野和扎实的研发实力,迅速在市场中崭露头角。公司不断推出具有创新性的电源产品,满足了当时电子行业对高效、稳定电源的需求,逐渐在行业内建立了良好的声誉。

FILTRONETICS Inc公司的发展小趣事

进入21世纪后,FILTRONETICS意识到全球化市场的重要性,开始积极开拓国际市场。公司加强了与国际客户的沟通与合作,参加了多个国际电子展会,展示了公司的技术和产品。同时,公司还在海外设立了分支机构,以便更好地服务当地客户。通过不懈的努力,FILTRONETICS成功打入多个国际市场,并赢得了众多国际客户的信赖和支持。

Dover Corporation公司的发展小趣事

作为一家多元化制造商,Dover Corporation一直致力于创新技术的研发与应用。公司在多个领域拥有先进的技术和解决方案,如先进的电梯控制系统、高效的燃料解决方案等。这些技术的应用不仅提高了Dover产品的性能和质量,也为客户提供了更加优质的服务。

东通电子公司的发展小趣事

随着全球对环保和可持续发展的重视,东通电子也积极响应号召,推行环保生产。公司在2005年开始推行环保电容生产,并在2007年通过了ISO14001:2004环境管理体系认证。这一举措不仅提升了公司的环保水平,也为客户提供了更加环保、可靠的产品。

问答坊 | AI 解惑

WinCE下声音的问题(急请达人指教)

程序要分离系统声音和按键声音,使两者互不干扰。 现在系统声音的设置通过waveOutSetVolume(0, 音量值) 这种情况下,可不可以实现另外做一个音频的通道,使其不受主音量的干扰,成为按键的声音? 要怎么做才能实现呢? 请指教啊~~~~~谢谢…

查看全部问答>

修改了WINCE下自带的源代码,如何快速编译把修改的情况及时反应到新的NK里面去?要求对系统不进行全部编译。

修改了WINCE下自带的源代码,如何快速编译把修改的情况及时反应到新的NK里面去?要求对系统不进行全部编译。…

查看全部问答>

hid设备控制问题? audio与usb复合设备

现在有个心片,是一个usb的audio设备 ,我现在可以把她作为一个普通的usb设备读写,但是现在有个问题就是希望该设备作为audio 设备来播放音乐,除了控制命令用endpoint1和4来传外,另外的audio channel怎么指定啊? 谢谢指定一下!…

查看全部问答>

请问在MTK开发平台上后缀名为.pth文件是做什么用的?

请问在MTK开发平台上后缀名为.pth文件是做什么用的?…

查看全部问答>

QQ的内嵌技术

您好,我使用MVC架构(java语言)来作QQ内嵌,实现用户可通过QQ和在线的管理员进行交流。我在网上搜索后,没有找到可用的资源。请您指教!…

查看全部问答>

LM3开发笔记_2.时钟和GPIO

        今天熟悉了一下LM提供的StellarisWare固件库,感觉跟STM32的固件库有很大的差异,使用上有点像Windows平台API函数的意思,使用外设的时候到对应的固件库看看有啥函数可以用就行了。   &nbs ...…

查看全部问答>

请问版主STR710的IIC功能现在有没有解决?

                                 没有波形出来呀,还会死机。…

查看全部问答>

请高手看看我的程序那错了

MOV #00H, R4 ; MOV #05H ,R8 ; MOV #200H ,R6 ; LOOP_M1 MOV.B M_S(R4),R6 ;标准读写模式设置将模式数据放到RJ6指向的地址中 ...…

查看全部问答>

看门狗不会复位怎么办

看门狗不会复位怎么办,我用的是MSP430147,究竟是什么导致这种情况发生的呢?…

查看全部问答>

μC/OS-II下通用驱动框架的设计与实现 转

      摘要:在μC/OS-II下,设计了一个通用的设备管理模型,称为通用驱动框架,通过该驱动框架,可以实现对硬件设备的   统一、一致的管理,同时,也为上层应用程序提供了统一、一致的设备访问接口,并在以ARM7TDMI ...…

查看全部问答>