STM32的 位尋址(地址映射)
STM比較特色的就是 位帶操作:
如下解釋:
(寄存器的地址是固定好的,我們想要進(jìn)行位操作的話 就需要用到地址映射,將位帶區(qū)寄存器的 各位 映射到 位帶別名區(qū)的地址。)
通過 位帶別名區(qū) 的 4個(gè)字節(jié)(32個(gè)位)用來存放 位帶區(qū)的 位地址。
如將 0x2200 0000 映射到 0x2000 000 的第一個(gè)位!
具體的映射C程序是這樣的:
算法公式:
(addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)
addr & 0xF0000000: 取0x4001 0808
+0x2000000
+((addr &0xFFFFF)<<5): 將低5位提取出來 乘以 32.
bitnum<<2 :對(duì)第2位 進(jìn)行加操作。 乘以4. 映射到某位
得到其位帶別名區(qū)的地址
評(píng)論