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

本文详细介绍了STM32F103芯片的GPIO寄存器映射原理及操作,通过C语言和汇编语言实现流水灯效果。内容涵盖GPIO工作模式、地址映射、C语言编程步骤、硬件连接和汇编代码解析,适合初学者入门实践。
摘要由CSDN通过智能技术生成

目录

前言

一、GPIO是什么?

1.1GPIO的寄存器地址

1.2GPIO的工作模式

二、STM32F103芯片的地址映射和存储器映射原理 

三、c语言进行流水灯点灯

1.创建工程

2.GPIO端口的设置

 3.C语言程序的编写

 四、硬件使用

1.使用到的器材:

2.连线:

3.HEX文件的烧录:

4.运行结果

五、汇编语言实现流水灯点亮

总结

参考文献





前言

存储器本身没有地址,给存储器分配地址的过程叫存储器映射。在存储器 Block2 这块区域,设计的是片上外设,它们以四个字节为一个单元,共32bit,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过 C 语言指针的操作方式来访问这些单元,如果每次都是通过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。寄存器按位操作有比较好的可读性和扩展性。



一、GPIO是什么?

GPIO是stm32的外设,是通用输入输出端口的总称,简单来说就是STM32可控制的引脚,其基本功能是控制引脚输出高电平或者低电平。

1.1GPIO的寄存器地址

GPIO 有很多个寄存器,每一个都有特定的功能。每个寄存器为 32bit,占四个字节, 在该外设的基地址上按照顺序排列,寄存器的位置都以相对该外设基地址的偏移地址来描述。例如GPIO的端口寄存器的地址表:

寄存器名称 寄存器地址 相对GPIOB地址的偏移
GPIOB_CRL 0x4001 0c00 0x00
GPIOB_CRH 0x4001 0c04 0x04
GPIOB_IDR 0x4001 0c08 0x08
GPIOB_ODR 0x4001 0c0c 0x0c
GPIOB_BSRR 0x4001 0c10 0x10
GPIOB_BRR 0x4001 0c14 0x14
GPIOB_LCKR 0x4001 0c18 0x18

1.2GPIO的工作模式

输入模式

    -输入浮空(GPIO_Mode_IN_FLOATING)

    -输入上拉(GPIO_Mode_IPU)

    -输入下拉(GPIO_Mode_IPD)

    -模拟输入(GPIO_Mode_AIN)

输出模式

    -开漏输出(GPIO_Mode_Out_OD)

    -开漏复用功能(GPIO_Mode_AF_OD)

    -推挽式输出(GPIO_Mode_Out_PP)

    -推挽式复用功能(GPIO_Mode_AF_PP)

二、STM32F103芯片的地址映射和存储器映射原理 

内存映射:事实并非如此,一般的外设为了加快处理速度都有自己的片内RAM(比如说显存,你也知道显存对显卡性能的重要性),分出去的地址空间也就与片内RAM物理连接起来,这样CPU就能像访问内存一样去访问外设的片内RAM,这也就是所谓的内存映射 

存储器映射原理:在存储器的区域单元中,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过 C 语言指针的操作方式来访问这些单元,如果每次都是通过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射
 



三、c语言进行流水灯点灯



1.创建工程

选择STM32F103C8芯片:

添加文件:

不要忘记点击魔法棒勾选生成HEX文件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值