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

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

3天内不再提示

微控制器外围功能的六部分系列之GPIO(通用输入/输出)

电子设计 来源:瑞萨电子 作者:瑞萨电子 2021-06-21 18:12 次阅读

本文介绍了学习微控制器外围功能的六部分系列中的第一部分,该系列是 GPIO(通用输入/输出)。它讨论了重要的外围设备,即 GPIO,以及使用 GR-SAKURA 和编程提示对 GPIO 进行编程,以防止“颤动”或由开关移动引起的某种程度的快速振动。

CPU 和内存是大脑。外围设备是 Brawn。

MCU(微控制器)广泛用于控制所有类型的电子设备。正如我们在之前的“微控制器简介”系列中所解释的那样,MCU 由 CPU(中央处理单元)、存储器和实现各种外设支持功能的附加电路组成(见图 1)。CPU通过读取程序和以下指令进行操作:读取数据、进行计算和比较、根据比较结果生成其他操作等指令。内存的作用不仅是存储数据,还包括程序本身。

pYYBAGDQZZOAKFKkAAEULMTBcd0917.png

重要外设:GPIO 端口

GPIO(通用输入/输出)端口处理传入和传出的数字信号。作为输入端口,它可用于将从开关接收到的 ON/OFF 信号或从传感器接收到的数字读数与 CPU 进行通信。作为输出口,它可以根据CPU指令和计算结果驱动外部操作——例如,根据计算结果驱动LED显示屏,或者输出驱动信号给电机

GPIO 被称为“通用”,因为每个引脚都可以自由设置为用作输入或输出。在早期的 MCU 中,每个端口要么专门输入,要么专门输出。然而,GPIO 是灵活的。如果它有 8 个引脚,您可以将它们设置为最适合您的需要:4 输入 4 输出,或 7 输入 1 输出,或任何其他组合。

请注意,当程序读取、写入和操作数字值(0 和 1)时,外部设备通常使用信号电平:低电压和高电压。GPIO 处理两个方向的必要转换。让我们看看 RX63N 的 GPIO 使用的基本寄存器 (*1)(见图 2)。

pYYBAGDQZaKABvcBAAF3YiHU8-4524.png

使用 GR-SAKURA 对 GPIO 进行编程

为了获得 GPIO 端口如何工作的一些实践知识,让我们编写一个程序,通过点亮 LED 来响应按下开关。我们将使用 Sakura 的“数字 I/O”库来方便我们的编程。

图 3 显示了根据开关值打开和关闭指定 LED(LED 0)的程序代码,其中 GPIO 端口用于获取开关设置和发送 LED 开/关信号。该程序以调用 pinMode 函数 (1) 的设置函数开始,该函数将连接到开关的引脚设置为输入模式,将连接到 LED 的引脚设置为输出模式。我们在这里使用设置函数,因为引脚模式设置必须只进行一次。

pYYBAGDQZbGAIifQAACL2BfB4m0909.png

编程提示:防止“喋喋不休”引起的问题

开关通过完成(闭合)或阻断(打开)电路来工作:当开关闭合时电流流动,而当它打开时不流动。然而,由于开关是机械装置,因此不能依靠它以瞬时和干净的方式改变电路状态。相反,开关的移动总是会产生某种程度的快速振动,这会导致短暂的中间“颤动”阶段,在该阶段电路在稳定到正确状态之前快速循环打开和关闭。您可能想尝试运行以下程序(图 4)以更好地了解实际中的喋喋不休。

poYBAGDQZb2AQ1FDAABssezNVHo001.png

所需的操作是使 LED 在按下和松开开关时平稳地亮起和熄灭。但这会一直发生吗?如果在抖动过程中读取开关信号,结果是不可预测的。这就是我们在图 3 所示的程序中引入“颤动”延迟的原因。

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2524

    文章

    48027

    浏览量

    739897
  • led
    led
    +关注

    关注

    237

    文章

    22441

    浏览量

    645831
  • 数字信号
    +关注

    关注

    2

    文章

    796

    浏览量

    47202
  • GPIO
    +关注

    关注

    16

    文章

    1132

    浏览量

    50552
收藏 人收藏

    评论

    相关推荐

    如何配置GPIO为中断功能呢?

    如何在嵌入式系统中配置GPIO为中断功能。 一、GPIO基础 GPIO是General Purpose Input/Output的缩写,中文意为通用
    的头像 发表于 10-30 09:57 3028次阅读

    STM32基础知识:GPIO(通用输入输出接口)

    GPIO通用输入/输出(General Purpose I/O)的简称,主要用于工业现场需要用到数字量输入/
    的头像 发表于 10-24 15:22 1757次阅读
    STM32基础知识:<b class='flag-5'>GPIO</b>(<b class='flag-5'>通用</b><b class='flag-5'>输入输出</b>接口)

    在STM32微控制器系列中使用DAC生成音频和波形

    本应用说明给出了使用Digital toSTM32F10xx微控制器系列中嵌入的模拟转换(DAC)外围设备。 数模转换(DAC)是一种
    发表于 10-10 07:32

    中微大容量8051系列CMS8S589x 支持任意映射GPIO单片机

      大容量8051内核 CMS8S589x系列通用微控制器,该系列设计旨在所有数字功能均可任意映射GPI
    的头像 发表于 09-26 09:51 344次阅读

    如何使用STM32G4系列微控制器存储外围设备

    本参考手册面向应用程序开发人员。它提供了关于如何使用STM32G4系列微控制器存储外围设备。 STM32G4系列是一
    发表于 09-08 06:59

    使用M032系列微控制器来执行USB磁盘和FatFs功能

    应用:此示例代码使用 M032 系列微控制器(MCU) 来执行 USB 磁盘和 FatFs 功能。 BSP 版本:M031系列BSP CMSIS V3.05.000 硬件
    发表于 08-29 07:45

    NuMicro M2351系列微控制器的安全特色与应用

    Secure Microcontroller Platform),该平台完整的定义了基于 Arm Cortex-M 系列 CPU 的 NuMicro 微控制器的安全功能,并提供了广泛可选择的
    发表于 08-28 06:24

    微控制器的工作原理和基本结构 微控制器引脚功能和应用电路

    微控制器是一种集成电路芯片,内部集成了微处理器、存储器、输入输出接口和各种系统控制逻辑电路。它可以通过编程实现各种控制任务,并通过输入输出
    发表于 08-16 17:09 3083次阅读

    STM32单片机的GPIO输入输出模式与配置方法

    STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块和实现微控制器应用所需的社区支持。在单片机应用中,GPIO 输入输出模式是必不可少的硬件接
    发表于 08-15 18:23 4866次阅读

    物联网的微控制器功能有哪些?

    市场上微控制器很多,适用于物联网的也有很多,所以了解其通用功能非常重要。首先,我们常见的一个问题是微控制器与微处理器之间的区别是什么。
    的头像 发表于 07-10 09:48 517次阅读
    物联网的<b class='flag-5'>微控制器</b><b class='flag-5'>功能</b>有哪些?

    电路设计何时应使用32位微控制器?有什么注意事项

    微控制器是半导体芯片的一部分,通过I/O和外围接口进行算术处理和控制电路。“32位微控制器”意味着微控制
    的头像 发表于 07-10 09:40 451次阅读

    介绍DSP28335的GPIO输出高低电平功能

    GPIO(General Purpose Intput Oytput)是通用输入输出端口的简称,可以通过软件来控制输入
    发表于 07-07 17:21 4688次阅读
    介绍DSP28335的<b class='flag-5'>GPIO</b>的<b class='flag-5'>输出</b>高低电平<b class='flag-5'>功能</b>

    GPIO的八种工作模式

    GPIO通用输入/输出端口的简称,GPIO的引脚与外部设备连接,可实现与外部通讯、控制外部硬件
    的头像 发表于 07-02 16:38 6363次阅读
    <b class='flag-5'>GPIO</b>的八种工作模式

    树莓派GPIO(通用输入输出)讲解

    界面(GUI),网络通信等等。但目前的知识已经可以让我们使用Python编写简单程序了。我们先放下Python,开始学习树莓派最好玩的部分GPIO(通用输入输出)。
    的头像 发表于 07-02 15:00 4453次阅读
    树莓派<b class='flag-5'>GPIO</b>(<b class='flag-5'>通用</b><b class='flag-5'>输入输出</b>)讲解

    MSPM0L1306开发板教程之GPIO输入输出

    GPIO算是所有MCU入门的第一步,今天的教程就来教大家设置MSPM0L系列GPIO输入输出功能
    的头像 发表于 05-04 17:22 2998次阅读
    MSPM0L1306开发板教程之<b class='flag-5'>GPIO</b><b class='flag-5'>输入输出</b>