STM32 时钟 定时器基础

本文详细介绍了STM32的时钟源,包括外部晶振和内部时钟,强调了外部时钟源的准确性。接着,讨论了定时器的工作原理,特别是基本定时器的计数方式和中断处理。还提到了通用定时器的外部时钟模式以及高级定时器的特性。此外,介绍了如何在CubeMX中配置时钟源和定时器。
摘要由CSDN通过智能技术生成
  • STM32 —— Clock Tree

    时钟源

    1. HSI:(High Speed Internal)内部的 RC 震荡电路产生时钟信号。
    2. HSE:(High Speed External) 外部晶振产生时钟信号。

    采用外部晶振信号原因在于:

    1. 晶振信号准确度更高
    2. 部分外设只能在晶振信号下工作
    1. LSE:(Low Speed External)外部晶振
    2. LSI:(Low Speed Internal)内部 RC

    在这里插入图片描述

    以上图为例:

    1. 低速时钟信号提供给 RTC (Real Time Clock)和 IWDG
    2. 高速时钟信号,经过时钟选择器(System Clock Mux),输出给 SYSCLKSYSCLK分频(AHB Prescaler )作为 AHB 时钟信号。AHB 信号经过分频作为 APB1APB2 时钟信号。

    CubeMX 设置

    RCC

    时钟源有两种提供方式:CrystalBYPASSCrystal 就是石英晶振,两条线接入 OSC_INOSC_OUT 。而 BYPASS (官方文档也称为 External Source ),则是只提供 OSC_INOSC_OUT 引脚悬空。

    RCC 下面的 Master Clock Output 则是可以让 RCC_MCO 输出时钟信号,给其它外设使用。

    如果用一块 STM32 给另一块板子提供时钟信号,那么从设备就应该选择 BYPASS

    SYS

    下面有 Timebase Source ,选择作为系统时钟的时钟源。系统时钟中断产生周期由一下语句确定

    HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq));
    

    SystemCoreClock 变量由 SystemCoreClockUpdate() 函数维护。每当 SysTick 提供时钟改变时,此变量也会相应改变。手动修改时注意

    定时器

    定时器是 MCU 中自主运行(free-running)的计数器。其时钟源可以来自以下三个方面:

    1. 内部时钟,也就是 Timer 所在的总线。
    2. 外部时钟源。
    3. 其余定时器作为时钟源。

    定时器分类

    更高级的定时器继承了低级定时器的所有功能。

    Basic Timers

    Basic Timers are 16-bit timers used as time base generator, and they do not have output/input pins. Basic timers can also be used as “master” for other timers.

    基本定时器从 0 计数到 Period 值,计数频率由挂载的是时钟总线决定,并可由 Prescalar 分频。当溢出时会产生 Update Event(UEV) 中断,并自动从初值(0)开始计数。

    基础定时器的主要结构由三个寄存器构成—— Counter Register (TIMx_CNT,当前计数值) / Prescaler Register (TIMx_PSC,预分频) / Auto-Reload Register (TIMx_ARR,溢出比较值)。当定时器使能后,每一个寄存器都可由软件读写。

STM32时钟定时器是指在STM32微控制器中用于计时和定时的外设。它通过计数器对输入的时钟信号进行计数,并可以根据预设的计数值来触发中断或执行特定的操作。定时器可以用来生成精确的时间延迟、产生PWM波形、测量脉冲宽度等功能。在STM32中,定时器的配置和使用需要了解其原理、寄存器介绍以及常用功能的使用方法。例如,可以通过定时器中断来实现周期性的任务执行,通过定时器输出比较产生PWM波形,通过定时器输入捕获测量脉冲的长度等。掌握STM32时钟定时器的使用方法对于开发STM32微控制器的应用程序是非常重要的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [STM32-定时器详解](https://blog.csdn.net/qq_44016222/article/details/123507270)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [STM32时钟定时器](https://blog.csdn.net/qq_52479948/article/details/129728360)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值