#define PERIPH_BASE ((u32)0x40000000)//端口地址#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)//端口地址#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)//端口地址#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)//不明白,这个预定义//把GPIOA_BASE看成指向GPIO_TypeDef结构体的指针吗,GPIOA代表一个指针变量吗int main(){typedef unsigned long u32;typedef volatile unsigned long vu32;// volatile是什么意思typedef struct{vu32 CRL;vu32 CRH;vu32 IDR;vu32 ODR;vu32 BSRR;vu32 BRR;vu32 LCKR;} GPIO_TypeDef;GPIOA->ODR = 0x1111
问题描述:
#define PERIPH_BASE ((u32)0x40000000)//端口地址
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)//端口地址
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)//端口地址
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)//不明白,这个预定义
//把GPIOA_BASE看成指向GPIO_TypeDef结构体的指针吗,GPIOA代表一个指针变量吗
int main()
{
typedef unsigned long u32;
typedef volatile unsigned long vu32;// volatile是什么意思
typedef struct
{
vu32 CRL;
vu32 CRH;
vu32 IDR;
vu32 ODR;
vu32 BSRR;
vu32 BRR;
vu32 LCKR;
} GPIO_TypeDef;
GPIOA->ODR = 0x1111;// GPIOA能直接指向GPIO_TypeDef结构体的成员ODR吗
}
请讲的具体一些
答
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)GPIOA的一个宏而已.给后面的GPIOA->ODR = 0x1111;用的,其实就是一种指针的使用/////////////////////////////////////////////////这两句话.改成好理解的就是GPIO_T...