STM32F103寄存器方式点亮LED流水灯

目录

一.寄存器

1.寄存器以及寄存器映射原理

2.GPIO寄存器

​ 3.输入输出模式配置

 4.APB2外设使能时钟

二.接线

三.keil程序

 四.烧录程序

 五.实验成果

六.心得

参考文献:


一.寄存器

1.寄存器以及寄存器映射原理

  寄存器是中央处理器内的组成部分,寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址,不同的数据会存放在不同的寄存器。

存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给物理存储器分配逻辑地址的过程就称为存储器映射,通过这些逻辑地址就可以访问到相应的存储器的物理存储单元。为了增加系统的灵活性,系统中有部分地址可以同时出现在不同的地址上,这就叫做存储器重映射。

寄存器映射是在存储器映射的基础上进行的。以STM32为例,操作硬件本质上就是操作寄存器。在存储器片上外设区域,四字节为一个单元,每个单元对应不同的功能。当我们控制这些单元时就可以驱动外设工作,我们可以找到每个单元的起始地址,然后通过C 语言指针的操作方式来访问这些单元。但若每次都是通过这种方式访问地址,不好记忆且易出错。这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名实质上就是寄存器名字。给已分配好地址(通过存储器映射实现)的有特定功能的内存单元取别名的过程就叫寄存器映射。

2.GPIO寄存器

STM32给不同的寄存器分配了不同的地址,可以在《STM32中文参考手册》中查找地址。查询GPIOX端口的起始地址

由于STM32的每个IO都需要4个位来配置,所以一个32位的寄存器最大只能配置8个IO(32位的单片机的寄存器就是32位的)。STM32中,用端口配置低寄存器(GPIOx_CRL)来配置引脚Px0-Px7, 用端口配置高寄存器(GPIOx_CRH)来配置引脚Px8-Px15。

本次实验将会用到GPIOA,GPIOB,GPIOC。 因为stm32最小板仅有ABC三个引脚系列。0-7位为CRL,8-15位为CRH,相对基址的偏移即从基址开始多少十六进制后是此寄存器地址的开始,不同的寄存器有不同的地址,需要去访问该地址,就需要查表。

寄存器名称 寄存器地址 相对 GPIOA 基址的偏移
GPIOA_CRL 0x4001 0800 0x00
GPIOA_CRH 0x4001 0804 0x04
GPIOA_ODR 0x4001080C 0x0C
寄存器名称 寄存器地址 相对 GPIOB 基址的偏移
GPIOB_CRL 0x4001 0C00 0x00
GPIOB_CRH 0x4001 0C04 0x04
GPIOB_ODR 0x40010C0C 0x0C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值