typedef unsigned int uint32_t;
typedef unsigned short uint16_t;
typedef struct
{
uint32_t CRL;
uint32_t CRH;
uint32_t IDR;
uint32_t ODR;
uint32_t BSRR;
uint32_t BRR;
uint32_t LCKR;
}GPIO_TypeDef;
#define GPIOB ((GPIO_TypeDef*) GPIOB_BASE) //强制类型转化成结构体类型的指针指向该地址
因为每一个都设置成32位,与之恰好对应故可以使用此方法
主函数:
//打开GPIOB端口的时钟
RCC_APB2ENR |= ( (1)<<3 );
//配置IO口为输出
GPIOB->CRL &= ~( (0x0f)<<(4*0) );//->指向结构体成员
GPIOB->CRL |= ( (1)<<(4*0) );
//控制ODR寄存器
GPIOB->ODR &=~(1<<0);