stm32f407
+ -

STM32F407ZG 位段映射

2022-01-01 14 3

STM32有一个特性,就是某些内存如GPIO的一些内存需要进行按位进行操作,一般我们的操作方法是先读取一个字节,然后进行位域或者位域之后,再写入,这样不但写起来麻烦,也容易出错。STM32实现了一个位段映射,即将某个地址的某个位的内存映射到一个32位的内存空间,这样当对这个32位的地址空间进行读写时,相当于对某个地址的位进行置1或者复位。

这个映射后的地址叫做别名地址,需要映射的地址叫做目标地址。

映射公式如下:

bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4)

下例说明如何将 SRAM 地址 0x20000300 处字节的位 2 映射到别名区域:

0x22006008 = 0x22000000 + (0x300*32) + (2*4)

对地址 0x22006008 执行写操作相当于在 SRAM 地址 0x20000300 处字节的位 2 执行读-修改-写操作。
对地址 0x22006008 执行读操作将返回 SRAM 地址 0x20000300 处字节的位 2 的值( 0x01表示位置位, 0x00 表示位复位)。

位段映射

0 篇笔记 写笔记

STM32F407ZG 位段映射
STM32有一个特性,就是某些内存如GPIO的一些内存需要进行按位进行操作,一般我们的操作方法是先读取一个字节,然后进行位域或者位域之后,再写入,这样不但写起来麻烦,也容易出错。STM32实现了一个位段映射,即将某个地址的某个位的内存映射到一个32位的内存空间,这样当对这个32位的地址空间进行读写时......
作者信息
我爱开发
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!