stm32位带地址换算问题

2019-07-16 09:38发布

FLASH :0x42000000 +((A‐0x40000000)*8+n)*4
A:寄存器的地址   n:访问该寄存器的第n个bit位还必须加上一个n
举例:
比如我要访问如下寄存器GPIOB_BSRR中的第14bit位BS13,
GPIO端口B的起始地址是x04001_0C00,GPIOB_BSRR寄存器的偏移地址是
0x10,访问的第14bit位的BS13。
换算0x4200_0000 + ((0x40010c00-0x40000000)*8 + 12)*4 = 实际地址

问题:不是说n是访问该寄存器的第n个位吗,那访问第14个位,不是应该加14,为什么公式里加12,还有那个偏移地址是干什么的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。