RA4M2开发涂鸦模块CBU.2--配置按键开启LED

  • 概述
  • 视频教学
  • 样品申请
  • 硬件准备
  • 参考程序
  • 按键口配置
  • 中断回调函数
  • 主程序

概述

本实验演示如何在 Renesas RA4M2 单片机上使用 GPIO 输入(按键) 触发 GPIO 输出(LED),并使用e2studio快速完成外设配置的基本流程。

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

在这里插入图片描述

视频教学

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

RA4M2开发涂鸦模块CBU(2)----配置按键开启LED

样品申请

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

硬件准备

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

在这里插入图片描述

参考程序

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

https://gitee.com/CoreMaker/RA4M2_TUYA_CBU

按键口配置

由下图我们可以得知,按键在P111、P112、P013管脚,并且有一个上拉。

在这里插入图片描述

在“New Stack”下选择Input > External IRQ (r_icu)。
在这里插入图片描述

模块配置如下所示。
● Name:g_external_irq4,这是该外部中断的名称。
● Channel:选择了4通道。
● Trigger:触发方式设置为Rising(上升沿触发),即信号上升时触发中断。
● Digital Filtering:未启用数字滤波(Not Supported)。
● Digital Filtering Sample Clock:由于数字滤波未启用,因此该项也未支持。
● Callback:指定了回调函数external_irq4_callback。当中断触发时,将调用此函数处理具体逻辑。
● Pin Interrupt Priority:设置为Priority 2,表示该中断的优先级为2。
● IRQ06:映射到引脚P000,即该中断信号通过引脚P111触发。

在这里插入图片描述

中断回调函数

● external_irq4_callback函数是外部中断的回调函数,当中断触发时,s_ext_irq_flag中断服务程序会调用此函数。
● s_ext_irq_flag 变量在每次中断时切换状态(如果是0则变1,如果是1则变0)。

/** @brief 由中断回调函数切换的外部中断标志 */
static volatile bool s_ext_irq_flag = false;/*** @brief 外部中断 IRQ4 回调函数** 当 ICU 外部中断发生时调用,切换外部中断标志。** @param[in] p_args 中断回调参数(未使用)*/
void external_irq4_callback(external_irq_callback_args_t *p_args)
{(void)p_args;s_ext_irq_flag = !s_ext_irq_flag;
}

在这里插入图片描述

主程序

● 调用R_ICU_ExternalIrqOpen函数初始化外部中断模块g_external_irq4。g_external_irq4_ctrl和g_external_irq4_cfg是配置外部中断的控制结构体和配置结构体。
● 如果初始化成功,err会返回FSP_SUCCESS,否则程序会停止(通过assert进行错误检测)。

    fsp_err_t err = R_ICU_ExternalIrqOpen(&g_external_irq4_ctrl, &g_external_irq4_cfg);assert(FSP_SUCCESS == err);

● 启用外部中断,使其可以响应触发事件。
● assert用于确认操作成功,否则程序会停止。

    err = R_ICU_ExternalIrqEnable(&g_external_irq4_ctrl);assert(FSP_SUCCESS == err);

完整代码如下。

/*** @brief 初始化外部中断 IRQ4** 打开并使能 ICU 外部中断通道 4。** @return FSP_SUCCESS 表示成功,否则返回错误码*/
static fsp_err_t external_irq4_init(void)
{fsp_err_t err = R_ICU_ExternalIrqOpen(&g_external_irq4_ctrl, &g_external_irq4_cfg);if (FSP_SUCCESS != err){return err;}err = R_ICU_ExternalIrqEnable(&g_external_irq4_ctrl);return err;
}

在这里插入图片描述

定义LED按键函数。

/*** @brief 根据中断标志更新 LED 输出** 根据 s_ext_irq_flag 状态设置指定 IOPORT 引脚高低电平。*/
static inline void led_update(void)
{R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_01_PIN_04,s_ext_irq_flag ? BSP_IO_LEVEL_HIGH : BSP_IO_LEVEL_LOW);
}

在这里插入图片描述

主循环中根据led_update的状态来控制GPIO引脚的高低电平。

void hal_entry(void)
{/* TODO: add your own code here *//* 初始化外部中断 IRQ4 */fsp_err_t err = external_irq4_init();assert(FSP_SUCCESS == err);/* 主循环:根据中断事件切换 LED */while (1){led_update();}#if BSP_TZ_SECURE_BUILD/* Enter non-secure code */R_BSP_NonSecureEnter();
#endif
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85862.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85862.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85862.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux——Json

一 概念 json是一种轻量级,基于文本的,可读的数据交换格式,能够让数据在不同系统(比如前端—后端,服务器—客户端)间方便传递/存储。在编程语言中都内置了处理json数据的方法 二 语法规则 1. 数据格式&a…

大模型之微调篇——指令微调数据集准备

写在前面 高质量数据的准备是微调大模型的重中之重,一些高质量的数据集可能远比模型性能更佳重要。 我是根据自己的数据照着B站up code花园LLaMA Factory 微调教程:如何构建高质量数据集?_哔哩哔哩_bilibili做的。 数据集格式 在LLaMA Fa…

LVS—DR模式

LVS—DR模式 LVS DR 模式详细简介 一、模式定义与核心原理 LVS DR(Direct Routing)模式,即直接路由模式,是 Linux Virtual Server(LVS)实现负载均衡的经典模式之一,工作于网络四层&#xff0…

宝玉分享VibeCoding构建Agent

借助 Claude Code 完成的一个翻译智能体 (Translator Agent)。你只需输入一段文字、一个网址或一个本地文件路径,它就能自动提取内容并完成翻译。更酷的是,它还能修正原文中的拼写错误,确保译文的准确流畅。 到底什么是“真正的”AI Agent&a…

在spring boot中使用Logback

在 Spring Boot 中使用 Logback 作为日志框架是开发中的常见需求,因其高性能和灵活配置而广受青睐。以下是详细实践指南,结合了配置方法、代码示例及最佳实践: 🔧 一、依赖配置 Spring Boot 默认集成了 Logback,无需手…

腾讯云 Lighthouse 轻量应用服务器:数据驱动的架构选型指南

摘要:腾讯云 Lighthouse 作为面向轻量级应用场景的优化解决方案,通过高性价比套餐式售卖、开箱即用应用模板及流量包计费模式,显著降低中小企业与开发者的上云门槛。本文基于性能测试与横向对比,量化分析其核心优势与适用边界。 …

Linux TCP/IP协议栈中的TCP输入处理:net/ipv4/tcp_input.c解析

在网络通信领域,TCP(传输控制协议)因其可靠的面向连接特性而被广泛应用。Linux内核的TCP/IP协议栈实现了对TCP协议的高效处理,其中net/ipv4/tcp_input.c文件扮演着关键角色,负责处理TCP数据包的输入逻辑。下面是对该文件核心功能的深入剖析。 一、TCP数据包接收与处理 (…

物联网传输网关、RTU、DTU及SCADA系统技术解析

目录 摘要 一、引言 二、物联网传输网关 1. 定义 2. 类型 3. 分类 4. 工作原理 5. 差异分析 总结: 三、RTU(远程终端单元) 1. 定义 2. 工作原理 3. 特点 4. 应用场景 四、DTU(数据传输单元) 1. 定义 …

【unity游戏开发——热更新】YooAsset简化资源加载、打包、更新等流程

注意:考虑到热更新的内容比较多,我将热更新的内容分开,并全部整合放在【unity游戏开发——热更新】专栏里,感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言1、什么是YooAsset?2、系统需求3、系统特点 一、下载安装…

AWS RDS/Aurora 开启 Database Insights 高级模式全攻略

想要深入了解数据库性能问题?AWS Database Insights 高级模式为您提供强大的性能分析工具。本文详细对比标准模式与高级模式的功能差异,并提供完整的启用指南和实战测试结果。 一、Database Insights 模式对比 AWS CloudWatch Database Insights 提供两种模式:标准模式和高…

XML SimpleXML

XML SimpleXML 引言 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它被广泛应用于Web服务和数据交换。SimpleXML是PHP中一个处理XML数据非常便捷的库。本文将详细介绍SimpleXML库的基本用法,帮助读者快速掌握XML数据…

Docker简单介绍与使用以及下载对应镜像(项目前置)

DockerDocker安装Docker卸载Docker配置镜像源配置镜像加速 Docker服务命令1.镜像操作命令2.容器操作命令 安装Mysql**数据卷挂载** Docker 在linux中软件安装说起: 以前在linux中安装软件,是直接安装在linux操作系统中,软件和操作系统耦合度很高,不方便管理. 因为linux版本不…

MyBatis 简介

MyBatis 简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射,能够帮助开发者将 Java 对象与数据库表进行灵活映射,简化数据持久化操作。以下从多个维度详细介绍 MyBatis: 一、核心定位与优势 轻量级…

自监督学习在合成孔径声呐目标识别中的应用之论文阅读

自监督学习在合成孔径声呐目标识别中的应用 BW Sheffield 美国巴拿马城海军水面作战中心 1 引言 在自主水下航行器(AUVs)中应用计算机视觉面临着独特的挑战,因为海洋环境往往条件不可预测且极为严苛。传统计算机视觉研究主要依赖光学相机成像,而在光照不足、悬浮沉积物及水…

进程间通信2(命名管道)linux

1 命名管道 前面讲到匿名管道,有一个很大的限制,那就是只有具有相同祖先(具有亲缘关系)的进程间才能进行通信,但是如果想实现不同进程间的通信,这个时候命名管道就发挥着巨大作用。 命名管道是一种特殊类…

简单通过SenseVoice给自己配置一个语音转文字服务

首先把代码下载下来 gitgithub.com:FunAudioLLM/SenseVoice.git 然后写一个docker文件 FROM ubuntu:latestRUN apt-get update -y RUN apt-get install -y python3-full python3-pip RUN mkdir -p /SenseVoice WORKDIR /SenseVoice RUN python3 -m venv . ENV USE_CUDA0 EXP…

网络钓鱼攻击

​根据2023年Proofpoint年度网络钓鱼报告显示:91%的针对性攻击始于钓鱼邮件,平均每30秒就有一个企业成为攻击目标,全球损失超过$6.5B​ 一、钓鱼攻击技术深度解析 1. 钓鱼攻击核心技术架构 2. 现代钓鱼技术演进 ​攻击向量升级路线​ ​当前…

uvicorn api:app --host 0.0.0.0 --port 7777容器运行失败

docker logs pycorrector-container-gpu 你这个报错的核心是: ERROR: Error loading ASGI app, Could not import module "api".这说明: uvicorn api:app 没有找到 api.py 文件,或者没法导入 app 对象。 🔍 一步步排查…

热成像仪测MOSFET温度

热成像仪测MOSFET温度 根据提供的搜索结果,热测量方法主要分为非接触式和接触式两大类,针对不同材料特性和测量场景各有优势。以下是核心方法的总结及关键技术要点: 🔥 一、非接触式热测量方法 红外热成像技术 原理:通…

Dagster资产元数据与标签:数据治理的利器

在现代数据栈中,有效的数据治理至关重要。Dagster作为领先的数据编排平台,提供了强大的资产元数据和标签功能,帮助团队更好地理解、组织和跟踪数据资产。本文将深入探讨Dagster中的资产元数据和标签功能,展示如何利用这些功能提升…