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,还有那个偏移地址是干什么的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
z00
1楼-- · 2019-07-16 10:56
感觉有错误:
换算0x4200_0000 + ((0x40010c00-0x40000000)*8 + 12)*4 = 实际地址
应该是
换算0x4200_0000 + ((0x40010c10-0x40000000)*8 + 13)*4 = 实际地址

STM32的位操作的方法:http://blog.csdn.net/cy757/article/details/5816929

STM32F103c8t独立按键功能深入剖析:http://wenku.baidu.com/view/f4f15a19a2161479171128df.html

一周热门 更多>