STM32F103寄存器方式点亮LED流水灯
1、学习和理解STM32F103系列芯片的地址映射和寄存器映射原理;了解GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)。 2、以 STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED 搭建电路,使用GPIOB、GPIOC、GPIOD这3个端口控制LED灯(最高时钟2Mhz),轮流闪烁,间隔时长1秒。 1)写出程序设计思路,包括GPIOx端口的各寄存器地址和详细参数; 2)分别用汇编语言,C语言编程实现。
目录
- STM32F103寄存器方式点亮LED流水灯
- 一、原理
-
- STM32F103系列芯片的地址映射和寄存器映射原理
-
- STM32寄存器简介
- 地址映射和寄存器映射原理
- GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)
-
- 1.GPIO简介
- 2.GPIO模式
- 3.输出和输入
- 4.GPIO初始化步骤
- 二、STM32F103C8T6实现LED灯轮流闪烁
-
- 1.连接电路
- 2.构建项目
-
- 1.c语言实现
- 2.汇编语言实现
- 三、总结
- 四、参考文献
一、原理
STM32F103系列芯片的地址映射和寄存器映射原理
STM32寄存器简介
- 什么是寄存器
寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两大类。基本寄存器只能并行送入数据,也只能并行输出。移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出,十分灵活,用途也很广。 1
- 如何找到某个寄存器的地址
不同的寄存器有不同的地址。- 找到GPIOB的基地址:所有GPIOB相关的寄存器,都住在0x4001 0C00到0x4001 0FFF范围内。
- 找到端口输入寄存器的地址偏移
- 找到知道数据的那个人
地址映射和寄存器映射原理
-
映射:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素a,B中总有唯一的一个元素b与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,b称为元素a在映射f下的像 [1] ,记作:b=f(a)。a称为b关于映射f的原像 [1] 。集合A中所有元素的像的集合称为映射f的值域,记作f(A)。2
-
外围设备的内存映射原理是一样的,只不过A集合变成了CPU,B集合变成了外围设备,对应关系就是连接CPU和外设地址引脚的地址总线。
-
存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射。
-
内存映射:外设为了加快处理速度都有自己的片内RAM,分出去的地址空间也就与片内RAM物理连接起来,这样CPU就能像访问内存一样去访问外设的片内RAM。
-
在存储器的区域单元中,每一个单元对应不同的功能,控制这些单元时可以驱动外设工作。首先找到每个单元的起始地址,然后通过 C 语言指针的操作方式来访问这些单元,但是每次都通过这种地址的方式来访问,耗费更多时间。所以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是寄存器,给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。
GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)
1.GPIO简介
GPIO(英语:General-purpose input/output),通用型之输入输出的简称,功能类似8051的P0—P3,其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO),如当clk generator, chip select等。
既然一个引脚可以用于输入、输出或其他特殊功能,那么一定有寄存器用来选择这些功能。对于输入,一定可以通过读取某个寄存器来确定引脚电位的高低;对于输出,一定可以通过写入某个寄存器来让这个引脚输出高电位或者低电位;对于其他特殊功能,则有另外的寄存器来控制它们。
- STM32的时钟是什么?<