定义IO口管脚内存地址常量时 ,为什么不直接使用其首地址呢?
为什么要以下边这样写,
#define PERIPH_BASE ((uint32_t)0x40000000)
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
#define GPIOA ((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOA_IDR_Addr (GPIOA_BASE+8) //0x40010808
下边这样写不好吗?
#define GPIOA ((GPIO_TypeDef *) 0x40010800)
#define GPIOA_IDR_Addr 0x40010808 |