STM32单片机:HSE(外部高速时钟)的编程(STM32L4xx)

第4课【STM32的时钟】时钟 时钟源 内外部时钟 高低速时钟 目录基本知识框架课堂笔记时钟什么是时钟?时钟有什么作用时钟源HSE 外部高速时钟HSI 内部高速时钟LSE 外部低速时钟LSI 内部低速时钟PLL锁相环主要时钟和其他时钟主要时钟其他时钟配置系统时钟实验基本知识框架Xmind文件下载 基本知识框架 课堂笔记 时钟 什么是时钟?时钟有什么作用 时钟是STM32内部最核心的器件,它可以提供时钟信号。依赖于这个信号,STM32中的器件才可以有条不紊地将工作进行下去。正如人类的脉搏一般。 时钟源 STM32中能够主动发出时钟信号的元器件,可以用作时钟源。STM32 阅读详情

高速外部时钟信号(HSE)可以从两个时钟源产生:

  • HSE外部晶体或陶瓷谐振器

这个外部晶体或陶瓷谐振器的频率范围是:4MHz至48 MHz,可以为系统提供非常精确的主时钟。

时钟控制寄存器(RCC_CR)中的(HSERDY=1)位用来指示HSE已经稳定运行。HSE启动时,在硬件将(HSERDY)位置1前,HSE的时钟信号不会输出。

利用时钟控制寄存器(RCC_CR)中的(HSEON)位打开和关闭HSE晶体。

  • HSE外部时钟

在此模式下,必须提供外部时钟源。其频率最高可达48 MHz。您可以通过设置时钟控制寄存器(RCC_CR)中的(HSEBYP=1,HSEON=1)位来选择此模式。占空比约为40-60%的外部时钟信号(方波、正弦波或三角波)驱动OSC_IN引脚,而OSC_OUT引脚可以用作GPIO。

以下是实现启动HSE的代码:

#define RCC                 ((uint32_t)0x40021000)

#define RCC_CR           (*(volatile uint32_t *)(uint32_t)(RCC+0x00))

#define RCC_CR_HSERDY       BIT(17)

#define RCC_CR_HSEON         BIT(16)

// 使能HSE

RCC_CR |= RCC_CR_HSEON;

// 检测HSE状态,等待HSE稳定

unsigned int   i;

for(i=0; i<1000; i++)

{

         if (RCC_CR & RCC_CR_HSERDY)  break;

         delay(); 

}

STM32使用HSE/HSI配置时钟 STM32时钟树 系统时钟 ①HSE 高速外部时钟信号 HSE 是高速外部时钟信号,可以由有源晶振或者无源晶振提供,频率为4~16MHz。当使用有源晶振时,时钟从OSC_IN引脚进入,OSC_OUT引脚悬空;当使用无源晶振时,时钟从OSC_IN和OSC_OUT进入,并且要配谐振电容。 HSE最常使用的是8MHz的无源晶振。当确定PLL时钟来源的时候,HSE 可以不分频或者2分频,这个由时钟配置寄存器CFGR的位17,即PLLXTRE设置。 ②PLL时钟源 PLL时钟来源可以有两个:一个是HSE, 阅读详情

相关推荐

STM32f103系列单片机 RCC——使用HSE/HSI配置时钟

设置系统时钟SYSCLK、设置AHB分频因子(决定HCLK等于多少)、设置APB2分频因子(决定PCLK2等于多少)、设置APB1因子(决定PCLK1等于多少)、设置各个外设的分频因子;控制AHB、APB2和APB1这三条总线时钟的开启、控制每个外设的时钟开启。对于SYSCLK、HCLK、PCLK2、PCLK1这4个时钟的配置一般是:。这个时钟配置也是库函数的标准配置,我们用的最多的就是这个。

m0_66464341的博客 2701

(六)STM32时钟系统RCC——使用HSE/HSI配置时钟

STM32 时钟系统、端口复用和重映射是什么、修改STM32系统时钟

MEYOU_Cc 不吃香菜! 5041

STM32单片机:时钟系统之时钟源(STM32L4xx)

本文主要介绍STM32L41xxx/42xxx/43xxx/44xxx/45xxx/46xxx系列的时钟系统。STM32L431单片机包含内部和外部两类时钟源:内部时钟包括LSI(32kHz)、HSI16(16MHz)、HSI48(48MHz)和可调频率的MSI(100kHz-48MHz);外部时钟包含LSE(32.768kHz)和HSE(4-48MHz)。通过PLL可将MSI、HSI16或HSE倍频至最高80MHz作为系统时钟SYSCLK。所有时钟可通过PA8引脚输出检测。内部时钟启动快但精度较低,外部时

1162

基于STM32的RCC—使用 HSE/HSI 配置时钟(代码详解——一看就懂)

关于RCC时钟的知识点,由浅入深,一讲就会

互相学习进步 1773

STM32单片机:PLL编程(STM32L4xx)

STM32L4x系列芯片通过内部PLL电路实现时钟倍频,将4-16MHz输入频率提升至最高80MHz。芯片提供2-3个PLL模块(PLL/PLLSAI1/PLLSAI2),每个包含倍频器和分频器,支持8-86倍频系数和2-31/2/4/6/8分频选项。配置时需先禁用PLL,修改参数后重新启用并等待稳定。通过特定寄存器控制输入时钟源选择、分频系数和输出使能,确保系统各模块获得所需时钟频率。

1211

STM32单片机:MSI(内部多频率时钟)和HSI48的编程(STM32L4xx)

摘要:MSI时钟由内部RC振荡器产生,频率范围100kHz-48MHz可调,默认4MHz,适用于低功耗场景和系统时钟备份。MSI可通过LSE校准实现高精度,支持USBFS和PLL工作模式。HSI48是48MHz内部RC振荡器,专为USB等外设设计,可通过CRS系统动态调频。两种时钟均支持软件控制开关,提供低成本、低功耗的时钟解决方案。(150字)

918

STM32L4学习

STM32Cube 是 ST 提供的一套性能强大的免费开发工具和嵌入式软件模块,能够让开发人员在 STM32 平台上快速、轻松地开发应用。图形配置工具STM32CubeMX。允许用户通过图形化向导来生成C语言工程。嵌入式软件包(STM32Cube库)。包含完整的HAL库(STM32硬件抽象层API),配套的中间件,以及一系列完整的例程。Drivers文件夹Drivers文件夹包含BSP,CMSIS和STM32L4xx_HAL_Driver三个子文件夹。

Caramel_biscuit的博客 2282

告别HAL,拥抱LL库:STM32L4系列在Keil MDK下的精简工程搭建全流程(附文件筛选清单)

本文详细介绍了如何在Keil MDK环境下为STM32L4系列搭建精简的LL库工程,告别HAL库的冗余。从STM32Cube_FW_L4固件包中精准筛选必要文件,到Keil配置技巧及HAL到LL的代码迁移实战,帮助开发者提升代码效率和性能。特别适合资源受限的STM32L433等Cortex-M4芯片应用。

weixin_30294295的博客 210

STM32L4系列MCU的五种振荡器和使用说明

STM32L4xx系列MCU基于ARM Cortex-M4,具有FPU内核、高度灵活性和高级外设集,实现了首屈一指的超低功耗性能。这些器件非常适合电池供电的产品,所需供电电压可低至1.71...

1515

基于STM32与FreeRTOS的智能手表设计:从RTOS原理到低功耗实战

实时操作系统(RTOS)是嵌入式系统实现多任务并发与实时响应的核心软件架构,其通过任务调度、同步与通信机制,为复杂应用提供了清晰、可靠的基础。FreeRTOS作为一款开源、高效的RTOS内核,凭借其小巧、可移植和丰富的特性,在资源受限的微控制器领域广泛应用,尤其适用于对实时性和功耗有严苛要求的物联网与可穿戴设备。在智能手表这类典型的多任务、事件驱动型设备中,RTOS的价值尤为凸显,它能将计步、显示、蓝牙通信等不同功能模块化为独立任务,通过消息队列和信号量进行高效协同,从而取代复杂且难以维护的状态机或超级循环

weixin_33843409的博客 363

STMicroelectronics 系列:STM32L4 系列_(11).STM32L4系列的时钟系统

STM32L4系列单片机的时钟系统非常灵活,支持多种时钟源和分频配置。通过合理配置时钟树,可以确保系统在不同应用场景下高效稳定地运行。时钟配置可以通过STM32CubeMX工具自动生成代码,也可以手动编写代码来完成。手动配置时需要特别注意各个寄存器的设置,确保时钟源的正确选择和分频参数的合理配置。同时,时钟故障检测功能也是确保系统可靠性的关键部分,建议在实际应用中启用。希望本文能帮助您更好地理解和配置STM32L4系列单片机的时钟系统。如有任何问题或需要进一步的帮助,请随时联系。

2401_87715305的博客 1027

STM32单片机:HSI16(内部16MHz高速时钟)的编程(STM32L4xx)

HSI16是STM32内置的16MHz RC振荡器,具有低成本、快速启动的优势,但精度低于外部晶振。出厂时校准至1%精度,可通过寄存器调整频率。HSI16可作为停止模式唤醒时钟或HSE故障备用时钟。启动代码示例展示了如何使能HSI16并检测其就绪状态。该时钟源适合对成本敏感但精度要求不高的应用场景。

543

STM32L4xx系列官方固件库补丁V1.5.2完整开发包

简介:STM32L4系列是意法半导体推出的基于ARM Cortex-M4内核的高性能低功耗微控制器。本补丁“Patch_CubeFW_L4_V1.5.2_20161108.zip”针对STM32CubeFW_L4_V1.5.0版本进行优化升级,涵盖驱动修复、HAL层性能提升、中间件更新及示例代码完善,支持在STM32CubeIDE、Keil、IAR等开发环境中快速集成。通过应用该补丁,开发者可提高项目稳定性与兼容性,充分发挥STM32L4芯片在嵌入式应用中的优势,加速产品开发进程。

weixin_32999557的博客 1001

STM32L4时钟架构解析:五大时钟源与低功耗配置实战

在嵌入式系统设计中,时钟系统是MCU的核心,它决定了处理器性能、外设同步与整体功耗。其原理是通过内部或外部振荡器产生基准频率,再经PLL倍频与分频网络分配至各模块。这一机制的技术价值在于实现性能与功耗的平衡,尤其在物联网传感器、可穿戴设备等电池供电场景中至关重要。通过深入理解时钟树,开发者能针对不同工作模式动态配置时钟源,例如在低功耗场景下使用MSI(多速内部振荡器)并结合自动校准机制,在满足USB等外设精度要求的同时大幅降低能耗。本文聚焦STM32L4系列,详细解析其包括HSE、LSE、HSI、LSI和M

weixin_30439067的博客 361

电源工程师必看:平均电流模式BUCK双环控制详解(从传递函数到Psim仿真)

本文详细解析了平均电流模式BUCK变换器的双环控制策略,从传递函数推导到Psim仿真实现。针对电源工程师关注的环路设计和稳定性问题,深入比较了电压模式、峰值电流模式和平均电流模式的优缺点,并提供了12V/3A BUCK变换器的完整设计案例,帮助工程师掌握平均电流控制这一中高功率应用的首选方案。

weixin_42696271的博客 398

保姆级教程:用CST 2023一步步复现一个1-8GHz Vivaldi天线(含参数优化与结果分析)

本文提供了一份详细的CST 2023教程,指导读者如何从零开始设计并优化1-8GHz Vivaldi天线。内容涵盖工程设置、参数化建模、仿真加速技巧以及性能优化策略,特别适合需要实现宽带天线设计的工程师和研究人员。通过实战案例,帮助用户掌握Vivaldi天线的核心设计要点和CST高级功能应用。

weixin_30800987的博客 619

从0开始实现STM32L4XX输出50Hz方波

STM32L4XX输出50Hz方波 编者按:大四毕业狗一只,在杭州某达物联网研发实习,正惆怅学海无涯时,经理吩咐我一个任务:找块板子,用IO口输出一个100Hz的方波,要求高、低电平都小于50ms。 好了,如果您看到标题还能继续看下去,那我必须得先表达我对您敬意。先分析功能需求: f=100Hz,T=1/f=10ms,来个简单的方波,占空比50%,高、低...

weixin_30767835的博客 1220

Simpack实战:5分钟搞定轨道车辆车轮不圆的3种定义方法(附详细参数设置)

本文详细介绍了在Simpack中定义轨道车辆车轮不圆的3种高效方法:Radius deviations、Fourier coefficients和Harmonic function,并提供了详细的参数设置指南。通过实战案例和参数优化技巧,帮助工程师快速掌握车轮不圆度的定义与仿真,提升轨道车辆动力学分析的准确性和效率。

weixin_29292535的博客 202

音诺ai翻译机通过STM32L4与内部RC振荡器校准提升时钟精度

音诺AI翻译机采用STM32L4内置HSI振荡器,结合LSE参考与软件校准技术,实现高精度时钟输出,省去外部晶振,降低BOM成本与PCB面积,提升启动速度与抗干扰能力,并通过温度感知自适应校准确保稳定性。

weixin_36296444的博客 634

23、管状剪纸结构的研究与功能生成连杆机构的综合设计

本文研究了管状剪纸结构的压缩运动特性,通过剪纸技术将非刚性可折叠的Yoshimura和Kresling折纸结构转化为刚性可折叠结构,并提出径向可闭合剪纸(RC-kiri)构型。推导了位移与折叠角之间的数学关系,设计了带外部LET接头的RC-kiri模型,建立了力-位移理论模型并通过Abaqus进行有限元验证,制作了3D打印物理模型以测量直径变化。同时,研究了四杆和六杆功能生成连杆机构的综合设计方法,基于负闭合运动链和最小二乘法实现函数生成。结果表明理论、仿真与实验整体吻合良好,误差来源得到分析,为机器人、机

nokia的博客 167

Microsemi Libero使用技巧11——CoreUARTAPB RX管脚分配时不显示

调用串口IP核CoreUARTAPB,并例化到顶层设计,发现UART_RX管脚在进行管脚分配时没有显示出来,最后发现是CoreAPB3总线IP核配置不对导致,改为如下配置后正常。

whik1194的博客 758

使用STM32CubeMX生成用于Keil的项目代码

本文介绍了使用STM32CubeMX和Keil开发环境创建STM32L4系列MCU项目的过程。

万波的技术博客 694

在 ABAP 中把变量一次写对:深入理解 FINAL 内联声明与不可变变量

摘要:ABAP中的FINAL声明操作符用于定义不可变变量,强调"当前上下文中的唯一写位置",能有效防止变量被意外修改,提升代码健壮性和可读性。官方建议优先在单次赋值的场景使用FINAL替代DATA。其核心规则包括:1)写位置唯一但可多次执行(如循环内);2)不创建块级作用域;3)对引用变量仅约束引用本身而非对象内容。典型适用场景包括:结果值只读、输入快照保存和中间结果保护。例外情况如游标变量不适用,因需多次写操作。正确使用FINAL可显著降低代码维护风险。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1046

STM32 FreeRTOS Tickless模式深度优化:STOP模式与AWU唤醒实战

实时操作系统(RTOS)的低功耗设计是嵌入式开发中的核心挑战,其关键在于如何在CPU空闲时最大限度地降低功耗。FreeRTOS的Tickless模式通过暂停系统节拍定时器,让MCU进入低功耗状态,并根据任务调度需求定时唤醒,从而有效降低系统平均功耗。在STM32平台上,常规实现依赖通用定时器在睡眠期间提供唤醒,但这种方法在追求极致功耗时仍存在优化空间。通过利用STM32内置的STOP低功耗模式及其自动唤醒单元(AWU),开发者可以实现更底层的Tickless机制,进一步减少功耗。这种方案特别适用于对功耗极其

373

如何解除“无法完成操作 因为文件包含病毒或潜在垃圾软件”

当运行软件遇到“无法完成操作 因为文件包含病毒或潜在垃圾软件”时,如何解决?控制面板-系统和安全-Windows Defender防火墙-自定义设置,将专用网络及公用网络关闭。点击后,选择“病毒和威胁防护”-管理配置。进入安全中心后,选择“病毒和威胁防护”将需要排斥的选项输入后,保存配置即可。2:打开windows安全中心。

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 6万+

动态时间规整(Dynamic Time Warping,DTW):让时间序列分析不再枯燥和代码全分析

动态时间规整(DTW)是一种用于比较时间序列相似性的算法,特别适用于处理长度不同或时间轴不对齐的序列。本文介绍了DTW的核心概念,包括其通过非线性对齐解决时间扭曲问题的能力,以及在语音识别、金融分析等领域的应用。通过Python代码示例,演示了如何计算两个模拟时间序列的DTW距离,并可视化最优对齐路径。结果显示,DTW能够有效捕捉序列间的相似模式,即使它们在时间轴上存在偏移或伸缩。该算法通过最小化累积距离来评估相似性,得分越低表明序列间相似度越高。

此星光明博客 163
上一篇: STM32单片机:HSI16(内部16MHz高速时钟)的编程(STM32L4xx)
下一篇: STM32单片机:电源管理(一)(STM32L4xx)
btzhy
博客等级 码龄17年 67粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

btzhy

您的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值