首先,寄存器是什么?
寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,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灯亮,实验成功。
华哥现场分享线电压、相电压,电工知识轻松...
时间:2026-03-10
电工有三把锁,今天电工现场教你其中的一把...
时间:2026-03-10
电工基础:单相电、两相电、三相电、相电压...
时间:2026-03-10
L1、L2、L3、N、PE,分别用什么颜色的电线?...
时间:2026-03-10
电工接线,知识分享视频
时间:2026-03-10
电工知识:万用表1分钟就可以轻松判断接触器...
时间:2026-03-10
电工知识分享视频
时间:2026-03-10
电工接线知识分享,你一定要学会视频
时间:2026-03-10
什么是相电压、线电压?基础入门知识,学电...
时间:2026-03-10
电工基础知识压力表与变频器接线方法口诀视...
时间:2026-03-10
玻璃釉电容器的结构与特点
时间:2026-03-05
电阻的标称阻值和允许偏差
时间:2026-03-05
电容器入门教程
时间:2026-03-05
旋转变压器原理与应用知识
时间:2026-03-06
使用过滤器电容器和诱导器来抑制受辐射的EM...
时间:2026-03-05
关于STM32WL LSE 添加反馈电阻后无法起振的...
时间:2026-03-05
贴片电阻的阻值识别方法
时间:2026-03-05
压敏电阻有正负极吗
时间:2026-03-05
三菱PLC功能指令介绍(二)
时间:2026-03-06
石英灯电子变压器电路原理
时间:2026-03-06