首先,寄存器是什么?
寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,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灯亮,实验成功。
什么是RTSP? RTSP和RTMP的区别
时间:2026-04-24
LCD1602显示原理
时间:2026-04-24
什么是BGA?BGA的结构和性能
时间:2026-04-24
降低电机驱动风险:栅极驱动器隔离的关键作...
时间:2026-04-24
电阻温度系数
时间:2026-04-24
占空比什么意思_占空比计算公式
时间:2026-04-24
详解卡尔曼滤波原理
时间:2026-04-23
什么是IMU(惯性传感器)
时间:2026-04-23
编码器是什么?编码器有哪些分类?
时间:2026-04-23
电容器颜色代码
时间:2026-04-23
石英灯电子变压器电路原理
时间:2026-03-06
半导体光刻工艺 光刻—半导体电路的绘制
时间:2026-03-09
什么是室温超导?半导体时代将走向结束?芯...
时间:2026-03-09
适用于DCM、QR的同步整流ic U7710SG介绍
时间:2026-03-09
北京理工大学实现了光导型向平面光伏型量子...
时间:2026-03-09
什么是硅片或者晶圆?一文了解半导体硅晶圆
时间:2026-03-09
汽车芯片业应汲取的教训
时间:2026-03-09
电阻的原理和作用 电阻色环识别图 电路中电...
时间:2026-03-09
半导体行业之ICT技术简介
时间:2026-03-09
NVIDIA CPU+GPU超级芯片大升级!
时间:2026-03-09