STM32F103系列点灯程序

点灯流程

1.找到LED灯对应寄存器引脚的基地址

1.1在原理图上找到LED灯的位置

在这里插入图片描述

1.2找到LED灯对应的引脚

在这里插入图片描述
LED1对应的引脚是PE5(也就是GPIO的端口E)
在这里插入图片描述
LED0对应的引脚是PB5(也就是GPIO的端口B)

1.3打开数据手册找到对应的基地址

在这里插入图片描述
可看到GPIO端口E的基地址为:0x4001 1800 - 0x4001 1BFF
可看到GPIO端口B的基地址为:0X4001 0C00 - 0x4001 0FFF

2.设置PE5、PB5寄存器模式为推挽输出模式

2.1配置PE5、PB5为推挽输出模式

在这里插入图片描述
我们配置的寄存器模式为推挽输出模式,输出模式的最大速度为50MHz。
代码实现:
上面得到了PE5的基地址为:0x40011800
偏移地址为:0x00
得GPIOE_CRL寄存器地址为:0x40011800

*(unsigned int *)0x40011800 &=~(0x0f<<20);  //设置为推挽输出模式
*(unsigned int *)0x40011800 |=(0x3<<20);   //输出模式的最大速度为50MHz

我们配置的寄存器模式为推挽输出模式,输出模式的最大速度为50MHz。
代码实现:
上面得到了PB5的基地址为:0X40010C00
偏移地址为:0x00
得GPIOE_CRL寄存器地址为:0X40010C00

*(unsigned int *)0X40010C00 &=~(0x0f<<20);  //设置为推挽输出模式
*(unsigned int *)0X40010C00 |=(0x3<<20);   //输出模式的最大速度为50MHz

2.2 配置PE5、PB5输出低电平实现LED灯亮

在这里插入图片描述
将GPIOx_ODR寄存器bit5位置0,

代码实现:
上面得到了PE5的基地址为:0x40011800
偏移地址为:0x0C
得GPIOE_ODR寄存器地址为:0x4001180C
配置PE5输出低电平

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


配置PB5输出低电平

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

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


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

在这里插入图片描述
其对应得时钟为APB2

3.1 找到时钟对应得基地址

在这里插入图片描述
其基地址为:0x40021000

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

在这里插入图片描述在这里插入图片描述
代码实现:
复位和时钟控制器得基地址为:0x40021000、
偏移值为:0x18
得到APB2外设寄存器地址为:0x40021018

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

	*(unsigned int *)0x40021018 |=(1<<3); //使能IO端口B开启
	*(unsigned int *)0x40021018 |=(1<<6); //使能IO端口E开启

程序烧写结果现象

程序代码

在这里插入图片描述

烧写

在这里插入图片描述

现象

在这里插入图片描述

  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值