STM32 预装载功能 影子寄存器

前言:

 

        影子寄存器是什么?听起来很高级很神秘的样子
其实它的作用很简单,那么下面就是我对影子寄存器的见解

以基本定时为例,因为框图最为简单。在预装载功能/影子寄存器这块所有定时器都是相同作用

定时器框图:

说明:

        定时器中PSC预分频器,ARR自动重载寄存器,CCR捕获比较寄存器都有影子寄存器,而PSC预分频器的影子寄存器是默认开启的。

        在编程时对PSC,ARR,CCR写入值,这些直接写入的我称之为预装载寄存器(本体寄存器)

        由框图可知它们背后都有个阴影,其实背后是一个寄存器,我们通常称为影子寄存器

它们之间会有某种作用关系,我们称之为预装载功能(缓存功能)

预装载寄存器:

        预装载寄存器是编写代码时配置和修改定时器参数的寄存器(PSC,ARR,CCR)。当我们对PSC,ARR,CCR写值操作时,实际上是在修改预装载寄存器(本体)的值。预装载寄存器具有缓冲作用,时器运行的情况下允许在不影响当前定时器运行,提前准备好新的参数值。
        预装载功能可以通过软件开启或关闭(PSC硬件默认开启)。当预装载功能关闭时,写入预装载寄存器的值会立即更新到影子寄存器,从而使修改立即生效。
        而当预装载功能开启时,写入预装载寄存器的值会在产生更新事件时,才更新到影子寄存器并生效

影子寄存器:

        影子寄存器是真正控制定时器运行的寄存器(真正起作用)。它包含了定时器当前运行的参数值(PSC,ARR,CCR)。
        影子寄存器是“不可见”的,即无法直接读写影子寄存器的值,而只能通过预装载寄存器来间接修改
        影子寄存器的设计目的是为了确保定时器运行的稳定性和可靠性。通过引入影子寄存器,可以避免在修改定时器参数时产生的瞬间不稳定状态,从而确保定时器能够按照预期的方式运行

总结:

        预装载寄存器和影子寄存器在STM32等微控制器的定时器机制中扮演着不同的角色。预装载寄存器用于代码配置和修改定时器参数(PSC,ARR,CCR),而影子寄存器则直接关系了定时器当前运行的参数值(PSC,ARR,CCR)。
        预装载寄存器具有缓冲作用,允许在不影响当前定时器运行的情况下提前准备好新的参数值;而影子寄存器则确保了定时器运行的稳定性和可靠性

  

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值