1、什么是预加载寄存器与影子寄存器?
在stm32定时器框图中,有部分寄存器下有黑色影子(下图绿色框)
如自动重装载寄存器,对此的解释是:
此寄存器实际上有2个寄存器:预加载寄存器+影子寄存器
其中预加载寄存器为用户用来配置的寄存器(用户用来读写值),而影子寄存器是真正起作 用的寄存器(即上图红框所说)
上图红框文字有一个重点:根据控制位的设定
解释:
如自动重加载寄存器,有一个寄存器为ARPE(自动装载预装载使能位),若此寄存器未使能,则在修改自动重加载寄存器的值后(实际上修改的是预加载寄存器),预加载寄存器的值立即更新到影子寄存器(即工作寄存器)。
反之,若ARPE寄存器使能,用户在修改自动重加载寄存器的值后(实际上修改的是预加载寄存器),预加载寄存器的值会等到本次计数周期结束后(即计数器产生溢出,触发更新事件),才将值更新到影子寄存器(即工作寄存器)
2、cubemx相关配置
在使能auto-reload preload后,修改ARR寄存器的值后(即修改自动重加载寄存器的预装载寄存器),不会立即更新到相关影子寄存器(工作寄存器),而是在本次PWM周期结束后(即计数器产生溢出,触发更新事件)更新到相关影子寄存器(工作寄存器),反之,立即更新相关影子寄存器(工作寄存器)。
扫描二维码关注公众号,回复:
16780443 查看本文章
在使能output compare preload后,修改CCR寄存器的值后(即修改自动重加载寄存器的预装载寄存器),不会立即更新到相关影子寄存器(工作寄存器),而是在本次PWM周期结束后(即计数器产生溢出,触发更新事件)更新到相关影子寄存器(工作寄存器),反之,立即更新相关影子寄存器(工作寄存器)。
其中:
ARR-->pwm周期
CCR-->占空比
不严谨,粗略的理解