0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

寄存器是什么?怎么操作寄存器点亮LED灯?

冬至子 来源:纷纭杂谈 作者:CY_CHEN 2023-07-21 16:59 次阅读

首先,寄存器是什么?

寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,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

    浏览量

    107797
  • 寄存器
    +关注

    关注

    31

    文章

    5305

    浏览量

    119916
  • MOS管
    +关注

    关注

    108

    文章

    2385

    浏览量

    66496
  • STM32
    +关注

    关注

    2265

    文章

    10859

    浏览量

    354544
  • 触发器
    +关注

    关注

    14

    文章

    1995

    浏览量

    61026
收藏 人收藏

    评论

    相关推荐

    寄存器点亮led

    本篇文章介绍了STM32的基本知识,以及寄存器编程,映射等有关知识,最后实例为用寄存器点亮led
    发表于 08-24 06:57

    如何操作寄存器

    学习单片机实际上就是学习如何操作寄存器。51单片机使用sfr来定义具有特殊功能的寄存器。如:sfr P1 = 0x90;如果你想使用P1口的第1位来点亮
    发表于 11-23 09:01

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定义  寄存器是中央处理内的组成部分。寄存器是有限存贮容量
    发表于 03-08 14:26 2.2w次阅读

    数据寄存器,数据寄存器是什么意思

    数据寄存器,数据寄存器是什么意思 数据寄存器数据寄存器包括累加AX、基址寄存器BX、计数
    发表于 03-08 14:38 1.2w次阅读

    寄存器与移位寄存器

    寄存器与移位寄存器:介绍寄存器原理和移位寄存器的原理及实现。
    发表于 05-20 11:47 0次下载

    使用寄存器点亮LED

    stm32是我们会寄存器点亮LED
    发表于 12-01 15:30 0次下载

    寄存器操作方法_对寄存器操作的通用方法总结

    本文主要详解寄存器操作方法以及对寄存器操作的通用方法总结,具体的跟随小编来了解一下。
    的头像 发表于 05-22 15:53 2.3w次阅读

    如何使用寄存器点亮LED

    本文档的主要内容详细介绍的是如何使用寄存器点亮LED
    发表于 04-15 17:00 10次下载
    如何使用<b class='flag-5'>寄存器</b><b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    STM8 寄存器点亮LED

    STM8 寄存器点亮LED库函数:方便,但效率低,调用文件多寄存器:高效,芯片资源最大化运用,但繁琐//使用寄存器方式控制最小系统板上 PB
    发表于 12-05 12:36 3次下载
    STM8 <b class='flag-5'>寄存器</b><b class='flag-5'>点亮</b><b class='flag-5'>LED</b>

    2021年10月21日 STM32F103寄存器方式点亮LED流水灯

    某些功能的时候,就要操作某个寄存器。可以把寄存器类比为,有特殊功能的地方,既然是个地方当然就有地址了,所以,可以把寄存器想象为特殊的地址。二、点灯
    发表于 12-07 09:51 7次下载
    2021年10月21日 STM32F103<b class='flag-5'>寄存器</b>方式<b class='flag-5'>点亮</b><b class='flag-5'>LED</b>流水灯

    STM32寄存器点灯

    配置寄存器使STM32最小系统板上的LED点亮根据原理图,要使D2点亮,需要将PC13拉低,分为以下步骤:使能GPIO的时钟配置GPIO1
    发表于 12-08 17:21 3次下载
    STM32<b class='flag-5'>寄存器</b>点灯

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

    STM32F03寄存器方式点亮LED流水灯文章目录STM32F03寄存器方式点亮LED流水灯一、
    发表于 01-13 14:47 9次下载
    STM32F03<b class='flag-5'>寄存器</b>方式<b class='flag-5'>点亮</b><b class='flag-5'>LED</b>流水灯

    STM32的寄存器操作

    STM32的寄存器操作在使用STM32单片机编程时一般都用ST给的库函数编程,库函数编程的底层就是对单片机寄存器操作,库函数就是一系列寄存器
    发表于 01-13 15:43 19次下载
    STM32的<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

    配置STM32寄存器控制GPIO点亮LED

    STM32点亮LED 寄存器方式IO简介1、每个IO可以自由编程,但是IO口寄存器必须按照32位字被访问。2、每个IO端口都有7个寄存器来控
    发表于 01-13 16:15 3次下载
    配置STM32<b class='flag-5'>寄存器</b>控制GPIO<b class='flag-5'>点亮</b><b class='flag-5'>LED</b>

    RAL寄存器模型操作指南

    寄存器模型操作,指的是通过寄存器模型对RTL中寄存器进行读写访问,或者同步寄存器模型与RTL中寄存器
    的头像 发表于 07-12 09:37 1015次阅读
    RAL<b class='flag-5'>寄存器</b>模型<b class='flag-5'>操作</b>指南