登录/注册

STM32定时器重装值函数

STM32定时器重装值函数

更多

在STM32 HAL库中,设置定时器重装值(ARR, Auto-reload Register)主要通过以下方式实现:


1. 初始化时设置重装值

在定时器初始化结构体 TIM_HandleTypeDef 中直接配置 Init.Period 并调用初始化函数:

TIM_HandleTypeDef htimX; // 定时器句柄

void TIM_Init() {
  htimX.Instance = TIMx;           // 如 TIM2
  htimX.Init.Prescaler = 7199;     // 预分频值
  htimX.Init.Period = 9999;        // 重装值 ARR(决定计数周期)
  htimX.Init.CounterMode = TIM_COUNTERMODE_UP;
  HAL_TIM_Base_Init(&htimX);       // 初始化定时器
}

2. 运行时动态修改重装值

使用宏 __HAL_TIM_SET_AUTORELOAD() 直接修改 ARR:

// 在中断或主循环中修改重装值
__HAL_TIM_SET_AUTORELOAD(&htimX, 4999);  // 新重装值 = 4999

3. 安全更新重装值(带缓冲)

若要避免异步更新导致的时序问题(使用影子寄存器):

// 启用ARR缓冲(预装载)
SET_BIT(htimX.Instance->CR1, TIM_CR1_ARPE);

// 设置新重装值(更新到影子寄存器)
__HAL_TIM_SET_AUTORELOAD(&htimX, 2999);

// 触发更新事件,使新值生效
__HAL_TIM_GENERATE_SW_EVENT(&htimX, TIM_EGR_UG);

关键点总结

注意:直接写 htimX.Instance->ARR = value 也可行,但推荐使用HAL宏确保可移植性。

STM32如何使用定时器实现微秒(us)级延时?

STM32如何使用定时器实现微秒(us)级延时? 在STM32微控制器中,可以使用定时

2023-11-06 11:05:21

为什么STM32F334 HRTIM定时器有最小比较重装

STM32F334为什么HRTIM定时器有最小比较值和重装载

2023-08-04 12:07:45

STM32定时器的分类及中断原理

本文主要介绍常规定时器中的TIM3,实现定时器中断的功能。STM32定时器

2023-01-12 17:29:17

⭐❤️STM32之玩转定时器TIMX❤️⭐

TIM8是STM32的高级定时器,TIM6,TIM7为基本定时器,其他为通用定时器

资料下载 微风挽雨 2021-12-28 19:08:33

STM32定时器-基本定时器

目录定时器分类基本定时器功能框图讲解基本定时器功能时钟源计数器时钟计数器自动重装

资料下载 佚名 2021-11-23 18:21:39

stm32的systick(滴答定时器)实现精准延时

stm32具有systick定时器,该外设属于内核外设,时钟一般选择系统时钟的8分频。使能后,计数寄存器递减到0后,会自动重装

资料下载 tr12345 2021-11-23 18:21:37

[STM32]通用定时器的使用

什么是PWM2.通过改变脉宽来改变亮灭程度总结前言首先还是要了解STM32库函数中提供的使用定时器所需要配置的结构体成员的含义typedef s

资料下载 佚名 2021-11-22 19:06:03

STM32定时器应用培训资料

STM32定时器应用培训资料(石家庄嵌入式开发不错的公司)-针对STM32定时器

资料下载 听风说梦 2021-08-04 12:45:34

STM32 SYSTICK定时器常见问题

我们知道,STM32库函数里通常使用来自内核的系统定时器SYSTICK作为时基,实现计数延时。一般来讲,ST公司提供的库

2022-09-13 16:20:10

STM32——定时器简介

重装载寄存器(TIMx_ARR )2.5状态寄存器(TIMx_SR )3 相关库函数3.1 初始化定时器参数

2021-08-19 08:38:34

STM32 Systick定时器简介工作原理

STM32---Systick定时器简介工作原理Systick寄存器SysTick 控制和状态寄存器- CTRLSysTick 重装载数值寄存器

2021-08-19 07:09:05

使用定时器替代延时函数

(Mhz)arr:自动重装载值psc:定时器分频 (分频系数) //-1为参考手册要求Ft:

2021-08-18 06:21:34

STM32定时器中断分享

不同,使用定时器中断需要初始化其相应的时钟,包括自动重装载值、预分频值、

2021-08-16 06:50:35

定时器做ms和us延时函数

定时器做ms和us延时函数本文用的是STM32L461RCT6芯片定时器

2021-08-12 07:52:28

STM32定时器的分频模块、计数模块、自动重装载模块‍

生溢出;向下计数时从多少开始往下计数。平常我们泛泛地说ARR寄存器为计数器提供计数边界或重装值,但它的具体含义及使用需要结合计数器的计数模式才能确定。那一起看看

2020-05-27 08:00:00
7天热门专题 换一换
相关标签