STM32F103系列最简易版点灯程序

it2024-03-29  50

STM32F103系列最简易版点灯程序

1、硬件准备2、软件3、点灯流程3.1、找到LED灯对应的GPIO端口E寄存器的基地址3.1.1、打开底板原理图找到LED灯的引脚3.1.2、找到LED0和LED1对应的引脚3.1.3、打开数据手册找到其基地址 3.2、设置其端口PE5的模式为输出模式3.2.1、配置PE5为输出模式3.2.2、配置PB5为输出模式 3.3、设置其为低电平(LED灯亮需要低电平触发)3.3.1、设置PE5为低电平点亮LED灯3.3.2、设置PB5为低电平点亮LED灯 3.4、打开GPIO端口E和B对应的时钟3.4.1、找到GPIO对应得时钟3.4.2、找到时钟对应得基地址3.4.3、打开GPIO对口B和端口E对应得时钟 4、烧写程序查看结果

1、硬件准备

STM32103最小系统开发板

2、软件

3、点灯流程

1、找到LED灯对应的GPIO端口E寄存器的基地址 2、设置其端口PE5的模式为输出模式 3、设置其为低电平(LED灯亮需要低电平触发) 4、打开GPIO端口E对应的时钟

3.1、找到LED灯对应的GPIO端口E寄存器的基地址

3.1.1、打开底板原理图找到LED灯的引脚

3.1.2、找到LED0和LED1对应的引脚

LED1对应的引脚为GPIO端口E的PE5 LED0对应的引脚为GPIO端口B的PB5

3.1.3、打开数据手册找到其基地址

可看到GPIO端口E的基地址为:0x4001 1800 - 0x4001 1BFF 可看到GPIO端口B的基地址为:0X4001 0C00 - 0x4001 0FFF

3.2、设置其端口PE5的模式为输出模式

3.2.1、配置PE5为输出模式

代码实现: 上面得到了PE5的基地址为:0x40011800 偏移地址为:0x00 得GPIOE_CRL寄存器地址为:0x40011800

*(unsigned int *)0x40011800 |= (0x01) <<20;

3.2.2、配置PB5为输出模式

代码实现: 上面得到了PB5的基地址为:0X40010C00 偏移地址为:0x00 得GPIOB_CRL寄存器地址为:0X40010C00

*(unsigned int *)0x40010C00 |= (0x01) <<20;

3.3、设置其为低电平(LED灯亮需要低电平触发)

3.3.1、设置PE5为低电平点亮LED灯

配置GPIOE_IDR寄存器得第5位为1.

代码实现: 上面得到了PB5的基地址为:0x40011800 偏移地址为:0x0C 得GPIOE_ODR寄存器地址为:0x4001180C

*(unsigned int *)0x4001180C &= ~(0x01 <<5);

3.3.2、设置PB5为低电平点亮LED灯

代码实现: 上面得到了PB5的基地址为:0X40010C00 偏移地址为:0x0C 得GPIOE_CRL寄存器地址为:0X40010C0C

*(unsigned int *)0x40010C00 &= ~(0x01 <<5);

3.4、打开GPIO端口E和B对应的时钟

3.4.1、找到GPIO对应得时钟

其对应得时钟为APB2

3.4.2、找到时钟对应得基地址

其基地址为:0x40021000

3.4.3、打开GPIO对口B和端口E对应得时钟

代码实现: 复位和时钟控制器得基地址为:0x40021000、 偏移值为:0x18 得到APB2外设寄存器地址为:0x40021018

使能IO端口B和IO端口E:

*(unsigned int *)0x4001180C &= ~(0x01 <<5); *(unsigned int *)0x40010C0C &= ~(0x01 <<5);

4、烧写程序查看结果

程序代码: 烧写: 结果:

最新回复(0)