STM32的寄存器的散布状况:
STM比较特征的便是 位带操作:
如下解说:
(寄存器的地址是固定好的,咱们想要进行位操作的话 就需要用到地址映射,将位带区寄存器的 各位 映射到 位带别号区的地址。)
经过 位带别号区 的 4个字节(32个位)用来寄存 位带区的 位地址。
如将 0x2200 0000 映射到 0x2000 000 的榜首个位!
详细的映射C程序是这样的:
算法公式:
(addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)
addr & 0xF0000000: 取0x4001 0808
+0x2000000
+((addr &0xFFFFF)<<5): 将低5位提取出来 乘以 32.
bitnum<<2 :对第2位 进行加操作。 乘以4. 映射到某位
得到其位带别号区的地址