寄存器和寄存器地址的关系,各位同道来说说你的想法
时间:10-02
整理:3721RD
点击:
我们都知道每一个寄存器都有地址,STM32的寄存器就有32位的长度,而地址也有三十二位的长度,有时候各位会不会这样想:是不是每个寄存器的地址就是寄存器存放数据的地方呢?我们改变某一个寄存器是不是就是改变了某个地址的数值?
我刚开始也是这样想,但是后来发现了问题,比如stm32的GPIOF的首地址是:0x4001 1C00,F口的CRH的寄存器的偏移量的是0X04,CRH是一个32位的寄存器,那么按照上面的想法,CRH就应该对应着32位的地址,但是我们发现,CRH临近的寄存器是CRL和IDR,他们各自的偏移量是0X00,0X08,就是说他们之间只是相差了4个单位,而不是32个,这就有问题了,就是说寄存器并不是地址代称。
上面说得有点乱,我不知道各位能不能够弄明白我在说什么,希望能够弄明白我在说什么的同道,能够给我一些建议,到底寄存器是不是地址,如果是地址,那么他们之间为什么相差的是4,而不是32,。
谢谢各位
我刚开始也是这样想,但是后来发现了问题,比如stm32的GPIOF的首地址是:0x4001 1C00,F口的CRH的寄存器的偏移量的是0X04,CRH是一个32位的寄存器,那么按照上面的想法,CRH就应该对应着32位的地址,但是我们发现,CRH临近的寄存器是CRL和IDR,他们各自的偏移量是0X00,0X08,就是说他们之间只是相差了4个单位,而不是32个,这就有问题了,就是说寄存器并不是地址代称。
上面说得有点乱,我不知道各位能不能够弄明白我在说什么,希望能够弄明白我在说什么的同道,能够给我一些建议,到底寄存器是不是地址,如果是地址,那么他们之间为什么相差的是4,而不是32,。
谢谢各位