影子寄存器和溢出错误的解决.pptVIP

  • 17
  • 0
  • 约1.7千字
  • 约 8页
  • 2023-11-21 发布于陕西
  • 举报
影子寄存器和溢出错误的解决O老师讲32一、影子寄存器及其作用二、更新事件的触发三、溢出中断错误的解决 O老师讲32一、影子寄存器及其作用图5-3 通用定时器的内部结构图 在图5-35中,我们发现了第一次测出来的周期都是错误的,为什么会这样呢?要想了解这个问题的原因,我们先回到图5-3瞧一瞧。如果你注意观察,你会发现在ARR、PSC和CCRx三个寄存器的下方有一个阴影,这说明了什么问题呢? 原来,设计STM32和GD32的公司在设计芯片的时候,充分考虑了各种情况。由此在ARR、PSC和CCRx三个异常重要的寄存器中都做了缓冲,也即这三个寄存器实际上都是两个寄存器,一个为预装载寄存器,一个是执行寄存器(影子寄存器)。 O老师讲32 预装载寄存器面向程序员,我们写入ARR、PSC和CCRx寄存器的值都是写到预装载寄存器,但是内部执行的却是执行寄存器。 比如我们采用下面的语句设置ARR的值为9999,TIM1-ARR = 9999; 此时这个值是写入到ARR的预装载寄存器的。但是,如果预装载寄存器与执行寄存器没有直通,则此时计数器去比较的是ARR的执行寄存器。比如,如果ARR的执行寄存器的值是8000,则CNT是跟8000比较,而不是跟9999比较。 那什么时候预装载寄存器的值会装入执行寄存器呢?我们以ARR为例来说明

文档评论(0)

1亿VIP精品文档

相关文档