最近发现好多的资料上将BRR寄存器称之为【一个16位寄存器BRR】。包括一些课件一些资料。例如原子哥的《STM32F1开发指南-库函数版本_V3.1 》也是这么描述的。而对于同样是高16位保留只有低16位有效的ODR寄存器却称之为【32位寄存器】。
我查看了《STM32中文参考手册_V10》和《STM32英文参考手册_V15》发现里面并没有就这个问题进行说明。
对此我有两个猜测:
① 由于BRR寄存器的功能与BSRR高16位相同,是不是BRR寄存器其实在【物理设计】上其实就是BSRR的高16位。只是由于为了方便使用,【逻辑上】将其又映射到一个地址上。
②笔误?(我觉得这个不大可能,毕竟不是一个资料上这样讲的)
请各位大佬解答一下,这是我们导师问我的。。。
手册上还写着ODR和IDR寄存器只能按字访问,是不是不能只修改单个BIT呢?
但是我们常用的位段操作PAout(3)或PAin(3)却可以按BIT位访问,
后来才想到,它指的是如果读写该寄存器必须以32位的字模式,整字读出,修改再整字写回。
但位段操作读写的并不是该寄存器,而是其某一BIT位所映射的别名存储器。
一周热门 更多>