初级会员

- 积分
- 76
- 金钱
- 76
- 注册时间
- 2019-2-5
- 在线时间
- 13 小时
|
发表于 2020-4-21 09:57:09
|
显示全部楼层
二楼三楼已经回答的很好了,我说一下我的见解,这个自动重装载寄存器,他的作用是什么,我想从名字的角度去分析,为什么叫自动重装载寄存器那?我认为,这是因为这个寄存器里存储了CNT计数器的值,CNT随着时钟精确的计数,向上,向下,或者双向,那么例如是向下计数,当计数到0后,这时CNT寄存器里是0,从哪里再重新倒数那?怎么办,难道产生一事件,人为的从新给个数值,重新倒数.那得多费劲,怎么办那就重新装载原先的那个值呗,而这个值放在另一个寄存器中,因为这个值是重新装载时需要的值,也就叫这个寄存器为自动重装载寄存器,自动就是不用人为去再给啊?而这个寄存器还有个影子,什么是影子就是和我一样的家伙,为什么要有个影子寄存器,玩单片机的必须要有个概念,就是精准,因为单片机都可以是us级别的,它都那么精准了,而你却没有那么精准的概念,你就操纵不好它,发挥不了他的潜力.影子寄存器就是为了精准,假如向上计数,你想想,计数器正在计数,一直都在朝着自动重装载计数器的值去努力,正在计着那,突然你改了这个值,改小了,我发现我超过去了,怎么办?或者改大了,我继续增大的话,那我这次计数算什么?所以要自动重装载计数器的值不能随意改?,可以在计数到原来的自动重装载计数器值的时候,再更改,这样更准确.当然不求准确的话,也可直接就给值,这就是影子寄存器的作用,它的本尊,可以被用户什么时候修改都行,,可是这个影子可以根据需要时再修改,这就是影子的作用,为的就是精确,当然还有一种功能就是同步.stm32中有很多影子寄存器,比如还有预分频器中也有,同理分频不是你什么时候想分就分的,你得等它完成一次计数后再分吧.与尔分享,有错误请请指正! |
|