简介
位带操作就是对可以单一的比特bit进行读写,在51单片机中可以用关键字sbit来实现位定义,在STM32单片机中就没有这样的关键字,取而代之的是通过访问位带别名区来实现位带操作的。
在 STM32 中,有两个地方实现了位带,一个是 SRAM 区的最低 1MB 范围,另一个是片内外设
区的最低 1MB 范围,两个区中的地址除了可以像普通的 RAM 一样使用外,它们还都有自
己的“位带别名区,”位带别名区“把这 1MB 的空间的每一个位膨胀成一个 32 位的字,当
访问位带别名区的这些字时,就可以达到访问位带区某个比特位的目的。
外设位带区
对于STM32F103系列来说,外设位带区的地址是: 0X40000000~0X40100000,大小为 1MB,这些地址上包含了F103系列各种容量大小单片机的寄存器。
外 设 位 带 区 经 过 膨 胀 后 的 位 带 别 名 区 地 址 为 :0X42000000~0X43FFFFFF
STM32 的全部寄存器都可以通过访问位带别名区的方式来达到访问原始寄存器比特位的效果,而51单片机只有部分寄存器可以,但一般我们不会以纯寄