当前位置: 首页 > news >正文

e2studio开发RA2E1(5)----GPIO输入检测

e2studio开发RA2E1.5--GPIO输入检测

  • 概述
  • 视频教学
  • 样品申请
  • 硬件准备
  • 参考程序
  • 源码下载
  • 新建工程
  • 工程模板
  • 保存工程路径
  • 芯片配置
  • 工程模板选择
  • 时钟设置
  • GPIO口配置
  • 按键口配置
  • 按键口&Led配置
  • R_IOPORT_PortRead()函数原型
  • R_IOPORT_PinRead()函数原型
  • 代码

概述

本篇文章主要介绍如何使用e2studio对瑞萨单片机进行GPIO输入检测。

最近在瑞萨RA的课程,需要样片的可以加qun申请:925643491。

在这里插入图片描述

视频教学

https://www.bilibili.com/video/BV1oxPReEEUW/

e2studio开发RA2E1(5)----GPIO输入检测

样品申请

https://www.wjx.top/vm/rCrkUrz.aspx

硬件准备

首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为R7FA2E1A72DFL#AA0

在这里插入图片描述

参考程序

https://github.com/CoreMaker-lab/RA2E1

https://gitee.com/CoreMaker/RA2E1

源码下载

https://download.csdn.net/download/xinzuofang/90338098

新建工程

在这里插入图片描述

工程模板

在这里插入图片描述

保存工程路径

在这里插入图片描述

芯片配置

本文中使用R7FA2E1A72DFL#AA0来进行演示。

在这里插入图片描述

工程模板选择

在这里插入图片描述

时钟设置

开发板上的外部高速晶振为12M.

在这里插入图片描述

需要修改XTAL为12M。

在这里插入图片描述

GPIO口配置

由下图我们可以得知,板子上有4个LED灯,同时需要给高电平才可以点亮。

在这里插入图片描述

在e2studio中可以直接设置P913、P914为输出口。

在这里插入图片描述

按键口配置

由下图我们可以得知,按键在P000和P001管脚,并且有一个上拉。

在这里插入图片描述

在e2studio中可以直接设置P000和P001为输入口。

在这里插入图片描述

按键口&Led配置

案例:当按下按键K1,P913亮,当按下按键K2,P914亮,松开按键对应LED灭。

R_IOPORT_PortRead()函数原型

该函数用于读取IO端口的值。指定的端口将被读取,所有引脚的电平将被返回。返回值中的每一位对应于端口上的一个引脚,例如,位7对应引脚7,位6对应引脚6,以此类推。

在这里插入图片描述

故可以用R_IOPORT_PortRead()函数进行读取IO口电平状态,该函数是把一个PORT口的16个端口一起读取出来。

        ioport_size_t p_port_value_port_0;R_IOPORT_PortRead(&g_ioport_ctrl, BSP_IO_PORT_00, &p_port_value_port_0);if(p_port_value_port_0 &0b1)R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_13, BSP_IO_LEVEL_LOW);elseR_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_13, BSP_IO_LEVEL_HIGH);

R_IOPORT_PinRead()函数原型

在这里插入图片描述

故可以用R_IOPORT_PinRead()函数进行读取IO口电平状态,该函数只能读取一个端口的电平。

        bsp_io_level_t p_port_value_pin_001;R_IOPORT_PinRead(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_01, &p_port_value_pin_001);if(p_port_value_pin_001)R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_14, BSP_IO_LEVEL_LOW);elseR_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_14, BSP_IO_LEVEL_HIGH);

代码

在hal_entry()中添加如下。

    while(1){ioport_size_t p_port_value_port_0;R_IOPORT_PortRead(&g_ioport_ctrl, BSP_IO_PORT_00, &p_port_value_port_0);if(p_port_value_port_0 &0b1)R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_13, BSP_IO_LEVEL_LOW);elseR_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_13, BSP_IO_LEVEL_HIGH);bsp_io_level_t p_port_value_pin_001;R_IOPORT_PinRead(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_01, &p_port_value_pin_001);if(p_port_value_pin_001)R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_14, BSP_IO_LEVEL_LOW);elseR_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_14, BSP_IO_LEVEL_HIGH);}
http://www.lryc.cn/news/532059.html

相关文章:

  • Spring @Lazy:延迟初始化,为应用减负
  • 将OneDrive上的文件定期备份到移动硬盘
  • 从0开始,来看看怎么去linux排查Java程序故障
  • DeepSeek-V3:开源多模态大模型的突破与未来
  • Deep Sleep 96小时:一场没有硝烟的科技保卫战
  • Redis地理散列GeoHash
  • JAVA安全—反射机制攻击链类对象成员变量方法构造方法
  • 专业学习|一文了解并实操自适应大邻域搜索(讲解代码)
  • 9. k8s二进制集群之kube-controller-manager部署
  • 轮转数组-三次逆置
  • 3 卷积神经网络CNN
  • 穷举vs暴搜vs深搜vs回溯vs剪枝系列一>黄金矿工
  • java基础1(黑马)
  • ES6 对象扩展:对象简写,对象属性 表达式,扩展运算符 ...,Object.assign,Object.is,用法和应用场景
  • 2025 持续防范 GitHub 投毒,通过 Sharp4SuoExplorer 分析 Visual Studio 隐藏文件
  • PCB走线宽度与过流能力参考
  • 电商项目-分布式事务(四)基于消息队列实现分布式事务
  • g++ -> make -> cmake(草稿)
  • JSON常用的工具方法
  • 【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信
  • [权限提升] Windows 提权 维持 — 系统错误配置提权 - Trusted Service Paths 提权
  • 8. k8s二进制集群之Kubectl部署
  • 初学 Xvisor 之理解并跑通 Demo
  • 深度内容运营与开源AI智能名片2+1链动模式S2B2C商城小程序在打造种草社区中的应用研究
  • RNN/LSTM/GRU 学习笔记
  • 音频录制一般在什么情况下会选择保存为PCM?什么情况会选择保存为WAV?
  • C#常用744单词
  • 如何理解算法的正确性?
  • 蓝桥杯试题:排序
  • 实验十一 Servlet(二)