×
嵌入式 > 嵌入式开发 > 详情

STM32的 位寻址(地址映射)

发布时间:2020-08-26 发布时间:
|
STM32的寄存器的分布情况:





本文引用地址:/zixunimg/eepwimg/www.eepw.com.cn/article/201611/322569.htm

STM比较特色的就是 位带操作:

如下解释:

(寄存器的地址是固定好的,我们想要进行位操作的话 就需要用到地址映射,将位带区寄存器的 各位 映射到 位带别名区的地址。)





通过 位带别名区 的 4个字节(32个位)用来存放 位带区的 位地址。

如将 0x2200 0000 映射到 0x2000 000 的第一个位!

具体的映射C程序是这样的:


算法公式:

(addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)

addr & 0xF0000000: 取0x4001 0808的最高位 得到 0x4000 0000

+0x2000000得到 0x4200 0000

+((addr &0xFFFFF)<<5): 将低5位提取出来 乘以 32.映射到位带别名区

bitnum<<2 :对第2位 进行加操作。 乘以4. 映射到某位

得到其位带别名区的地址



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
mini 2440 test 的Delay函数分析