首先,寄存器是什么?
寄存器,是集成威廉希尔官方网站 中非常重要的一种存储单元,通常由触发器组成。在集成威廉希尔官方网站 设计中,寄存器可分为威廉希尔官方网站 内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部威廉希尔官方网站 或软件访问,只是为内部威廉希尔官方网站 的实现存储功能或满足威廉希尔官方网站 的时序要求。而接口寄存器可以同时被内部威廉希尔官方网站 和外部威廉希尔官方网站 或软件访问,CPU中的寄存器就是其中一种,作为软硬件的接口,为广泛的通用编程用户所熟知。
今天在昨天建好的工程基础上,简单介绍下怎么操作寄存器点亮LED灯。
新建两个文件文件,分别命名为led.h和led.c并添加到工程项目中。
进行操作的板子中LED1和LED2分别对应PF9和PF10,想控制LED,就要先初始化对应的端口。要初始化就要配置相应的寄存器。配置寄存器需要一个STM32F4xx的参考手册,我比较菜,只能看中文文档,看得懂英文的可以直接用英文版,毕竟英文版的是第一手资料。
以第一个GPIOx_MODER端口模式寄存器为例,要操作的端口分别为9、10,对应18、20位。从威廉希尔官方网站 图可以知道只要控制输出的高低电平就可以实现LED灯的亮灭。所以这里选择通用输出模式10。
在输出类型中中,输出使能,推挽模式时双 MOS 管以方式工作,输出数据寄存器GPIOx_ODR 可控制 I/O输出高低电平。开漏模式时,只有 N-MOS 管工作,输出数据寄存器可控制 I/O输出高阻态或低电平。所以输出类型应选推挽输出。
端口的输出速度是端口支持高低电平切换的最高频率,控制LED灯可以随便设置。
端口用于输入时,端口的上/下拉模式可以控制端口的默认状态。但现在端口用于输出,端口受 ODR寄存器影响,ODR寄存器对应端口位初始初始化后默认值为 0,端口输出低电平,所以这时我们配置无上/下拉模式。
在输出模式时,操作BSRR和ODR寄存器即可控制端口的电平。这里用ODR寄存器控制。输入为0时,LED灯亮;输入为1时,LED灯灭。
这时,GPIO端口的寄存器已经配置完成,但是还是点不亮灯。这是为什么捏?
STM32为了降低功耗,每个外设都对应一个时钟,这些时钟的初始状态都是关闭的,如果外设想要工作,必须打开相应的时钟。所有外设的时钟由一个专门的外设来管理,叫 RCC。所以最后还要通过RCC_AHB1ENR开启时钟。
主程序
LED源文件
LED头文件
编译文件,将程序烧入开发板,LED灯亮,实验成功。
-
led灯
+关注
关注
22文章
1592浏览量
107974 -
寄存器
+关注
关注
31文章
5342浏览量
120297 -
MOS管
+关注
关注
108文章
2412浏览量
66794 -
STM32
+关注
关注
2270文章
10897浏览量
355862 -
触发器
+关注
关注
14文章
2000浏览量
61140
发布评论请先 登录
相关推荐
评论