STM32CubeMX配置时钟中的auto-reload precload

目录


过程

在观看【小蜜蜂笔记】基于STM32CubeMX的嵌入式开发基础教程 第5P——STM32的定时器开发基础的时候,产生了一个疑问,这里不需要使能自动重装载吗?
在这里插入图片描述
带着这个疑问我去查了一下《STM32 HAL 库开发实战指南》,在第 31 章 TIM—基本定时器找到了详细的解释。

自动重载寄存器 TIMx_ARR 用来存放于计数器值比较的数值,如果两个数值相等就生成事件,将 相关事件标志位置位,生成 DMA和中断输出。 TIMx_ARR 有影子寄存器,可以通过 TIMx_CR1 寄存器的 ARPE 位控制影子寄存器功能,如果 ARPE 位置 1,影子寄存器有效,只有在事件更新 时才把 TIMx_ARR 值赋给影子寄存器。如果 ARPE 位为 0,修改 TIMx_ARR 值马上有效。

在这里插入图片描述

另外,我又去查了《STM32F10xxx参考手册》,最后得出了一个结论:auto-reload precload 对应着TIMx 控制寄存器 1(TIMx_CR1)的位7——ARPE

ARPE:自动重装载预装载允许位 (Auto-reload preload enable)
0: TIMx_ARR寄存器没有缓冲;
1: TIMx_ARR寄存器被装入缓冲器。

具体时序图如下所示:
图57 计数器时序图,当ARPE=0时的更新事件(TIMx_ARR没有预装入)图57 计数器时序图,当ARPE=0时的更新事件(TIMx_ARR没有预装入)
图58 计数器时序图,当ARPE=1时的更新事件(预装入了TIMx_ARR)图58 计数器时序图,当ARPE=1时的更新事件(预装入了TIMx_ARR)

结论

1. auto-reload precload=Disable:自动重装载寄存器写入新值后,计数器立即产生计数溢出,然后开始新的计数周期
2. auto-reload precload=Enable:自动重装载寄存器写入新值后,计数器完成当前旧的计数后,再开始新的计数周期

  • 51
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
STM32CubeMX配置定时器的步骤如下: 1. 打开STM32CubeMX,并选择你的目标芯片型号。 2. 在左侧的Peripherals(外设)选项卡,找到定时器(Timer)。 3. 点击定时器,然后在右侧的参数设置,选择一个定时器通道,比如TIMx。 4. 在参数设置,选择定时器模式为定时器(Timer),选择计数模式为向上计数(Upcounter)。 5. 根据你的需求,设置定时器的预分频(Prescaler)值和自动重装载寄存器(Auto-reload Register)的值。 6. 如果你只需要一个能定频自增的u32变量,可以将定时器的断关掉。在NVIC settings(断向量配置)选项卡,取消勾选你选择的定时器断。 7. 点击"OK"来生成代码,并导出到你的工程。 在生成的代码,你可以使用TIMx->CNT寄存器来读取定时器的计数值,作为一个32位的定时器时基。这样你就可以实现一个能定频自增的u32变量的功能。 请注意,在CubeMx配置定时器的具体步骤可能会因芯片型号和版本而有所不同,因此请根据你的具体情况进行调整和参考。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [STM32CubeMx配置定时器](https://blog.csdn.net/qq_31073871/article/details/121657095)[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_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值