STM32103最小系统开发板
1、找到LED灯对应的GPIO端口E寄存器的基地址 2、设置其端口PE5的模式为输出模式 3、设置其为低电平(LED灯亮需要低电平触发) 4、打开GPIO端口E对应的时钟
LED1对应的引脚为GPIO端口E的PE5 LED0对应的引脚为GPIO端口B的PB5
可看到GPIO端口E的基地址为:0x4001 1800 - 0x4001 1BFF 可看到GPIO端口B的基地址为:0X4001 0C00 - 0x4001 0FFF
代码实现: 上面得到了PE5的基地址为:0x40011800 偏移地址为:0x00 得GPIOE_CRL寄存器地址为:0x40011800
*(unsigned int *)0x40011800 |= (0x01) <<20;代码实现: 上面得到了PB5的基地址为:0X40010C00 偏移地址为:0x00 得GPIOB_CRL寄存器地址为:0X40010C00
*(unsigned int *)0x40010C00 |= (0x01) <<20;配置GPIOE_IDR寄存器得第5位为1.
代码实现: 上面得到了PB5的基地址为:0x40011800 偏移地址为:0x0C 得GPIOE_ODR寄存器地址为:0x4001180C
*(unsigned int *)0x4001180C &= ~(0x01 <<5);代码实现: 上面得到了PB5的基地址为:0X40010C00 偏移地址为:0x0C 得GPIOE_CRL寄存器地址为:0X40010C0C
*(unsigned int *)0x40010C00 &= ~(0x01 <<5);其对应得时钟为APB2
其基地址为:0x40021000
代码实现: 复位和时钟控制器得基地址为:0x40021000、 偏移值为:0x18 得到APB2外设寄存器地址为:0x40021018
使能IO端口B和IO端口E:
*(unsigned int *)0x4001180C &= ~(0x01 <<5); *(unsigned int *)0x40010C0C &= ~(0x01 <<5);程序代码: 烧写: 结果: