Advertisement

STM32中关于SysTick、FCLK、SYSCLK和HCLK的几个时钟设置

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本文介绍了在STM32微控制器中配置SysTick定时器及系统时钟(FCLK, SYSCLK, HCLK)的基本方法与技巧,帮助开发者正确理解并使用这些关键时钟信号。 STM32可以将一个时钟信号选择输出到MCO脚(PA8)上,可以选择的选项包括PLL输出的2分频、HSI、HSE或系统时钟SYSCLK。其中,系统时钟SYSCLK的最大频率为72MHz,并且它是供STM32中绝大部分部件工作的主要时钟源。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • STM32SysTickFCLKSYSCLKHCLK
    优质
    本文介绍了在STM32微控制器中配置SysTick定时器及系统时钟(FCLK, SYSCLK, HCLK)的基本方法与技巧,帮助开发者正确理解并使用这些关键时钟信号。 STM32可以将一个时钟信号选择输出到MCO脚(PA8)上,可以选择的选项包括PLL输出的2分频、HSI、HSE或系统时钟SYSCLK。其中,系统时钟SYSCLK的最大频率为72MHz,并且它是供STM32中绝大部分部件工作的主要时钟源。
  • STM32工具
    优质
    STM32时钟设置工具是一款专为STM32系列微控制器设计的软件应用,帮助开发者便捷地配置和管理芯片内部及外部时钟源,确保系统稳定高效运行。 时钟工具可以为 STM32F4xx 微控制器配置系统时钟并生成 system_stm32f4xx.c 文件。此文件可用作系统时钟配置的模板,用户可以根据需要选择相应的系统频率,并调整 CPU 对 Flash 的等待周期。
  • STM32BOOT0BOOT1.pdf
    优质
    本文档详细介绍了在STM32微控制器中如何配置BOOT0和BOOT1引脚以选择不同的启动模式及存储器映射方式,帮助用户更好地理解和利用STM32芯片的各种启动选项。 本段落介绍了STM32芯片的三种启动模式:BOOT0、BOOT1以及通过STM32本身进行的启动方式。这三种启动模式所对应的存储介质均位于芯片内部,包括用户闪存、SRAM及系统存储器。其中,系统存储器是芯片内的一块特定区域,在出厂时预置了一段Bootloader程序。此外,还提供了关于BOOT0和BOOT1设置的相关PDF文档。
  • STM32 SysTick器系统
    优质
    简介:STM32 SysTick定时器是Cortex-M内核的标准组成部分,提供了一个独立于硬件架构的基本定时功能,广泛应用于RTOS中的时间管理及任务调度。 STM32 SysTick系统定时器应用代码已编译成功!
  • Android性化
    优质
    《Android个性化时钟设置》是一篇指南文章,详细介绍如何在Android设备上自定义和调整时钟应用的各种功能与样式,以满足个人喜好。 Android自定义时钟项目是别人的开源作品,质量很高。更多详情可以参考我的博客文章。
  • SysTick系统资料.rar
    优质
    本资源包含SysTick系统时钟的相关资料,适用于学习和研究ARM微控制器中的系统滴答定时器,帮助开发者深入理解其工作原理与应用。 SysTick定时器又称作滴答定时器,是Cortex-M3内核的一个内置外设,并嵌入在NVIC(嵌套向量中断控制器)中。它是一个24位向下递减计数的定时器,每次计数值更新所需的时间为1/SYSTICK周期,其中SYSTICK时钟可以取自系统时钟或通过将系统时钟进行8分频后获取。 当SysTick定时器值减少至0时,会自动从LOAD寄存器中重装初始值,并重新开始递减计数。如此循环往复。如果启用了SysTick中断功能,在每次计数值归零时会产生一个中断信号。因此,通过设定适当的计数值可以准确控制延时时间的长短。
  • STM32 APB1总线问题
    优质
    本文将探讨STM32微控制器中APB1总线的时钟配置方法与常见问题,提供详细解决方案和实例代码。 本段落介绍了使用定时器2到4的两个设备进行通信时的时钟配置问题。
  • STM32 RTC内多功能(I2C OLED)
    优质
    本项目基于STM32微控制器开发的一款集显示、计时功能于一体的多功能时钟设备,采用I2C接口连接OLED显示屏展示时间,并利用RTC模块的内部时钟源确保精确计时。 功能:1. 显示日期与时间 2. 按键更改时间 3. 定闹钟 4. 按键更改闹钟时间 5. 蓝牙更改时间与闹钟 硬件配置: - STM32F103C8T6 微控制器 - 按键 - 有源蜂鸣器 - 蓝牙模块 - 四针I2C协议 OLED 屏幕 蓝牙配置所需要的电脑和手机软件已包含在压缩包里。 主程序部分代码如下: /* USER CODE BEGIN Header *//** ****************************************************************************** * @file : main.c * @brief : 主程序体 ****************************************************************************** */
  • STM3272MHz,为何还需配Flash?
    优质
    当为STM32微控制器设定72MHz系统时钟频率,必须相应地调整Flash加速器设置。这是因为更高的工作频率需要更短的内存访问时间以维持稳定的数据读取和写入速率,从而保证代码能够流畅运行而不会出现错误或延迟。配置Flash等待状态可确保CPU在高速模式下仍能可靠执行程序指令。 当配置STM32的72MHz时钟频率时,还需要进行Flash存储器的相关设置。这是因为虽然STM32支持高达72MHz的工作速度,但其内部Flash存储器由于制造工艺限制无法达到这一高频率。 在CPU访问Flash以获取指令或数据的过程中,必须加入等待周期来确保操作正确无误。此外,在STM32中,Flash被设计为64位宽度的结构,意味着每次读取可以提取64位的数据,并且有两层缓冲机制用于缓存从Flash读出的信息。 由于Cortex-M3架构下不同长度指令的存在(包括16位和32位),程序执行时的实际等待周期数量会因具体代码内容而异。例如,在连续执行相同长度的指令时,可能不需要额外的等待周期;然而一旦遇到跳转或其它复杂的操作,则需要重新初始化缓冲机制并引入必要的延迟。 因此,在进行性能评估时,不能仅凭是否存在等待周期来评判程序表现的好坏,而是应该综合考量平均性能指标。这说明了为何在设置STM32高速运行模式的同时还要特别注意Flash配置的相关细节。
  • STM32学习记录—SysTick
    优质
    本篇博客详细记录了作者在学习STM32微控制器过程中关于SysTick定时器的相关内容,包括其工作原理、配置方法及应用示例。 SysTick定时器是一个24位的倒计数定时器,在STM32单片机系统中扮演着重要角色。当计数值减至0后,它会自动从RELOAD寄存器重新加载初始值,并继续循环计数,除非在SysTick控制及状态寄存器中的使能位被清除。 SysTick定时器有以下几个关键用途: 1. 生成操作系统的时钟节拍:嵌入式系统中通常需要一个定时器来产生滴答中断作为时间基准。由于SysTick与NVIC紧密集成,它可以触发SYSTICK异常(异常号15),从而提供稳定的时钟节拍。 2. 方便代码移植性:Cortex-M3处理器内建了SysTick定时器,使得基于此处理器的软件在不同设备间易于移植,因为所有Cortex-M3芯片都包含这个定时器,并且使用方式和处理逻辑保持一致。 3. 时间测量与闹钟功能:除了用于操作系统之外,SysTick还可以用作时间测量或设定闹钟的功能。不过需要注意的是,在调试模式下处理器停止运行时,SysTick也会暂停计数。 要使SysTick定时器正常工作,需要执行以下步骤: - 配置计数器时钟源:通过设置CTRL寄存器中的CLKSOURCE位。 - 设置重载值:在RELOAD寄存器中设定初始值。 - 清除COUNTFLAG标志位:可通过读取或写入SysTick控制及状态寄存器(STCSR)或当前值寄存器(STCVR)实现。 - 启动定时器:设置CTRL寄存器中的ENABLE位以启动计时操作。 - 如果需要中断功能,还需开启相应的中断,并在服务例程中处理。 为了将SysTick用作系统时钟源: 1. 将STCSR的TICKINT位置为启用状态; 2. 若使用重定位向量表,则需设置SysTick异常的向量地址及提供相应服务例程入口点。 此外,SysTick还可以用来实现延时功能。这可以通过查询方式或中断方式来完成:查询模式是通过不断检查COUNTFLAG标志位判断计数是否结束;而中断模式则是在初始化阶段设定好定时值和中断,并在溢出时由相应的中断服务程序处理延时期满。 例如,以下是一个简单的配置函数示例,用于设置SysTick每1毫秒产生一次中断(假设系统主频为72MHz): ```c void SysTick_Configuration(void){ // 选择AHB总线作为计数器时钟源 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); // 设置SysTick优先级为3 NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 7); // 每毫秒触发中断,假设系统时钟频率为72MHz SysTick_SetReload(72000); // 启用SysTick的中断功能 SysTick_ITConfig(ENABLE); } ``` 以上内容概述了STM32单片机中SysTick定时器的基本知识及其应用。它在嵌入式系统开发过程中非常重要,提供了可靠的时间管理和同步机制支持。