点亮GPIOB_Pin0
//打开GPIOB端口时钟
*(unsigned int *)0x40021018 |= ( (1) << 3 ); 置1
//配置IO口模式
*(unsigned int *)0x40010C00 |= ((1) << (4*0));
//控制ODR寄存器
*(unsigned int *)0x40010C0C &= ~(1 << 0); //清零
1.打开GPIOB时钟
有图1可知GPIO在APB2时钟线上,使能APB2时钟。
由图二,图三 可知RCC基地址为0x40021000,APB2时钟使能寄存器偏移地址为0x18
所以:APB2的使能寄存器地址为, 0x40021018。因为GPIOB在第三位,
//打开GPIOB端口时钟
*(unsigned int *)0x40021018 |= ( (1) << 3 ); 置1
2.设置IO口模式
GPIOB基地址+端口配置低寄存器偏移地址:0x40010C00
//配置IO口模式
*(unsigned int *)0x40010C00 |= ((1) << (4*0));
3.控制ODR寄存器
GPIOB基地址+端口输出数据寄存器: 0x40010C0C
//控制ODR寄存器
*(unsigned int *)0x40010C0C &= ~(1 << 0); //清零