您的位置 首页 动态

STM32定时器的预装载寄存器与影子寄存器之间的联系

在STM32参考手册的第13、14章中,都有一张定时器的框图,下面是第14章中定时器框图的局部,图中黄色框所示的是auto-reloadregister,在下…

STM32参考手册的第13、14章中,都有一张定时器框图,下面是第14章中定时器框图的部分,图中黄色框所示的是auto-reload register,鄙人面的第14.3.2节”Counter Modes”就解说了auto-reload register的用法。

在图中可以看到auto-reload register这个框有一个暗影,有些其它寄存器也有用暗影表明,如我用蓝色标出的Capture/Compare寄存器;有暗影的寄存器,表明在物理上这个寄存器对应2个寄存器,一个是程序员可以写入或读出的寄存器,称为preload register(预装载寄存器),另一个是程序员看不见的、但在操作中真实起作用的寄存器,称为shadow register(影子寄存器);正如手册上的14.3.1节所说,依据TIMx_CR1寄存器中APRE位的设置,preload register的内容可以随时传送到shadow register,即两者是连通的(permanently),或许在每一次更新事情(UEV)时才把preload register的内容传送到shadow register。

在图顶用红线圈起的一个大写的U和一个向下的箭头,表明对应寄存器的影子寄存器可以在产生更新事情时,被更新为它的preload register的内容;而图顶用绿线圈起的部分,表明对应的Autoreload register可以产生一个更新事情(U)或更新事情中止(UI)。

规划preload register和shadow register的优点是,一切真实需求起作用的寄存器(shadow register)可以在同一个时间(产生更新事情时)被更新为所对应的preload register的内容,这样可以确保多个通道的操作可以精确地同步。假如没有shadow register,或许preload register和shadow register是直通的,即软件更新preload register时,一起更新了shadow register,由于软件不行能在一个相同的时间一起更新多个寄存器,成果形成多个通道的时序不能同步,假如再加上其它要素(例如中止),多个通道的时序联系有可能是不行预知的。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/277396.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部