位带介绍
什么是位带操作
STM32里面没有像51里面一样的sbit 操作,但是可以通过位带操作来操作
STM32的片上外设和SRAM均有1MB的位带区,位带区里面的每一个位都可以通过位带别名区的地址来访问。位带区的一个位,对应位带别名区的四个字节。
比如说:
STM32 GPIOx_ODR寄存器中的某一个位无法进行单独操作,但是寄存器的每一个位都对应着一个专门的地址,这个地址叫位带地址,对位带地址进行单独访问的话就可以进行单独控制(读和写 )
那些外设可以进行位带操作
根据官方提供的图可知(这个是f407的)ox40000000-0x400FFFFFF 为外设位带区,这个地址区域的每一位都有单独的地址可以控制,0x42000000-0x43FFFFFF是其对应的外设位带别名区
这些可以进行位带操作的内容包含了APB2,APB1,AHB1这些总线上的外设
怎么找到相应寄存器的位带别名地址
公式讲解详细看野火STM32F407位带操作13min
理解要点:位带区的一个位在位带别名区会被膨胀成四个字节
使用位带的方式访问GPIO的ODR寄存器