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

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

概述

本篇文章主要介绍如何使用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个端口一起读取出来。

c 复制代码
        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);
        else
            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_13, BSP_IO_LEVEL_HIGH);

R_IOPORT_PinRead()函数原型

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

c 复制代码
        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);
        else
            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_14, BSP_IO_LEVEL_HIGH);

代码

在hal_entry()中添加如下。

c 复制代码
    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);
        else
            R_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);
        else
            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_09_PIN_14, BSP_IO_LEVEL_HIGH);
    }
相关推荐
嵌入式阿蔡13 小时前
传感器_03:电机驱动——让 GPIO 当指挥官,别让 GPIO 当电源
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库
国科安芯15 小时前
ASL706S:让 MCU 不再“失忆跑飞“的守护芯片
分布式·单片机·嵌入式硬件·安全·fpga开发·架构
树的枝18 小时前
【STM32】03.中断和EXTI外设
笔记·stm32·单片机·嵌入式硬件
单片机杂货铺19 小时前
【单片机毕业设计选题】基于stm32单片机儿童公路车速度检测报警
stm32·单片机·嵌入式硬件·51单片机·硬件工程·课程设计
振南的单片机世界20 小时前
看门狗硬核拆解:1.6秒不喂狗,硬件强制“掀桌子”
arm开发·stm32·单片机·嵌入式硬件
嵌入式阿蔡20 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
NYFEA1 天前
徕飞 FCA系列全面上新,一站式I/O扩展国产替代方案
单片机·嵌入式硬件
国科安芯1 天前
ASL622S:把“信号失真“挡在门外的航天级运放
网络·单片机·嵌入式硬件·架构·状态模式·低轨卫星星座
XiHongShi20161 天前
STM32H7 FLASH和SRAM标准例程
stm32·单片机·嵌入式硬件
单片机杂货铺1 天前
【单片机毕业设计选题】基于单片机的智能牛奶保鲜箱设计
人工智能·stm32·单片机·物联网·毕业设计·课程设计