1、首先确定要读写的寄存器个数,对应的创建一个结构体(里边创建对应个数的成员)
(结构体的空间大小要跟寄存器所占的内存总和一样)
#define unsigned int uint32_t
typedef struct
{
uint32_t CRL;
uint32_t CRH;
uint32_t IDR;
uint32_t ODR;
uint32_t BSRR;
uint32_t BRR:
uint32_t ICKR;
}GPIO_Typedef;
2、将要访问的寄存器地址强制转化为结构体指针类型
1)、GPIOA 记为 单纯的将地址强制转换为结构体指针类型
2)、GPIOB 记为 转换为结构体指针类型之后读出七个结构体成员的数据
1)、#define GPIOA (((GPIO_Typedef *) (0x40010800)))
2)、#define GPIOB (*((GPIO_Typedef *) (0x40010C00)))
3、访问某个结构体成员的地址(某个寄存器的地址)里边存放的数据赋给无符号整型变量
void mytest(void)
{
uint32_t a,b;
a = GPIOA->CRL;
b = GPIOB.CRL;
}