完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
关于STM32时钟系统的配置
在 STM32 中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL,系统时钟(SYSCLK)相当于神经中枢系统,一般为72M,可经过AHB预分频器、APB1预分频器、APB2预分频器后作为一系列外设时钟。系统时钟(SYSCLK)可以由HSI振荡器时钟、HSE振荡器时钟、PLL(锁相环)时钟驱动。HSE为外部晶振提供产生时钟源(416MHZ),HSI时钟信号由内部8MHz的RC振荡器产生,具有睡眠情况下继续工作的特点,为备用时钟源。PLL可以选择HIS振荡器/2或HSE振荡器(可选择HSE/2或者直接HSE直接输入)为PLL的输入时钟,倍频可选择为216 倍,但是其输出频率最大不得超过 72MHz,可经过USB分频器分频后作为USB时钟的时钟源。当外部晶振受损时可由CSS(时钟监视系统)自动切换HIS时钟为时钟源。RTC(实时时钟)可由LSE、HSE/128分频、LSI驱动。LSE 是低速外部时钟,接频率为 32.768kHz 的石英晶体,为实时时钟(RTC)或者其他定时功能提供 一个低功耗且精确的时钟源。LSI 是低速内部时钟,RC 振荡器,频率约为 40kHz,作为独立看门狗时钟源。MCO为输出内部时钟,可输出系统时钟(SYSCLK)、HSI、HSE、或者/2分频PLL(锁相环),MCO为一个引脚,可用示波器对内部的时钟进行波形检测。 下面我将对SystemInit ()函数进行刨析 打开HIS 将寄存器所有位置零即关闭,相当于初始化 接下来我们将进入SetSysClock()函数 运用#ifdef语法调用不同频率时钟配置函数,可选择不同时钟,只在system_stm32f10x.c的开头选择所需的时钟即可。 通过选择了不同分频时钟的函数我们将进入时钟的配置,以SetSysClockTo72()配置72M为例。 首先打开外部高速时钟(HSE) 等待HSE时钟稳定 判断是否稳定 然后通过操作CFGR寄存器的位对AHB、APB1、APB2进行分频处理 选择PLL为时钟源,并选择9倍频的HSE为输入时钟,所以倍频之后的系统时钟为72MHz 之后便是操作CR寄存器使能PLL时钟(RCC-》CR |= RCC_CR_PLLON;) 然后等待PLL时钟就绪并操作CFGR寄存器选择PLL为系统时钟。 (系统时钟默认为72M,在启动文件中已经调用了SystemInit()函数不需要自己配置,如果需要其他频率的时钟修改倍频因子即可)。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1105 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1128 浏览 1 评论
558 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
420 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1011 浏览 2 评论
1604浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
271浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
283浏览 3评论
262浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
245浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-18 22:23 , Processed in 0.561477 second(s), Total 45, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191