标签:地址 fine 指针 内存 指针类型 span typedef color size
1. STM32中寄存器实际是线性内存单元上对应的一个地址
2. 如GPIOA->ODR寄存器实际是对内存上某一单元的操作
#define GPIOA_BASE (APB2PERIPH_BASE + 0x00000800U) //定义GPIOA的基地址 #define GPIOA ((GPIO_TypeDef *)GPIOA_BASE) //此处将GPIOA的基地址转换为GPIO_TypeDef指针类型,相当于在地址值后划分 GPIO_TypeDef大小的内存空间 typedef struct { __IO uint32_t CRL;//相当于在基地址基础上偏移0个字节 0x00000804U //__IO实际是 volatile ,此处代表在基地址上偏移32位的地址内存,为易变的类型,所以此处取值每次都会访问内存 __IO uint32_t CRH;//在基地址上偏移4个字节 0x00000808U __IO uint32_t IDR;//在基地址基础上偏移8个字节 0x0000080CU __IO uint32_t ODR;//在基地址基础上偏移12个字节 __IO uint32_t BSRR;//在基地址基础上偏移16个字节 __IO uint32_t BRR;//在基地址基础上偏移20个字节 __IO uint32_t LCKR;//在基地址基础上偏移24个字节 } GPIO_TypeDef;
标签:地址 fine 指针 内存 指针类型 span typedef color size
原文地址:https://www.cnblogs.com/cgy601785959/p/12217577.html