e2studio开发RA4M2(17)----ADC扫描多通道采样

e2studio开发RA4M2.17--ADC扫描多通道采样

  • 概述
  • 视频教学
  • 样品申请
  • 硬件准备
  • 参考程序
  • 源码下载
  • ADC属性配置
  • 回调函数
  • 主程序
  • 演示结果

概述

在嵌入式系统中,ADC(模数转换器)是一个非常重要的组件,它将模拟信号转换为数字信号。为了提高采样效率和扩展应用,瑞萨MCU支持多通道扫描模式,允许同时采集多个模拟信号。在本文中,将在上篇文章基础上探讨如何配置ADC模块进行多通道扫描,并采集来自不同的输入模拟信号。

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

在这里插入图片描述

视频教学

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

e2studio开发RA4M2(16)----ADC单通道采集电压

样品申请

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

硬件准备

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

参考程序

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

https://gitee.com/CoreMaker/RA4M2

源码下载

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

e2studio开发RA4M2(17)----ADC扫描多通道采样

ADC属性配置

添加P015通道。

在这里插入图片描述

● Name:g_adc0该 ADC 实例的名称,在代码中用于引用此 ADC 设备。
● Unit:0表示使用的是 ADC0 设备(MCU 可能有多个 ADC 单元,如 ADC0、ADC1 等)。
● Resolution:12-Bit选择 ADC 分辨率为 12 位,即转换后的数值范围为 0~4095(2^12 = 4096)。
● Alignment:Right选择数据右对齐,即 ADC 结果存储时,低 12 位有效,高位填充 0。
● Clear after read:On每次读取 ADC 结果后,寄存器会自动清除,防止旧数据干扰新采样。
● Mode:Single Scan单次扫描模式,即每次触发 ADC 转换后,仅采样一次选中的通道。

在这里插入图片描述

● Normal/Group A Trigger:SoftwareADC 触发方式为软件触发,即需要手动调用 API R_ADC_ScanStart() 来启动转换。
● Callback(回调函数):指定回调函数 adc_callback,用于 ADC 转换完成后的事件处理。
● Scan End Interrupt Priority(扫描结束中断优先级):Priority 2ADC 扫描结束中断的优先级设置为 2(数值越小,优先级越高)。
● AN012 → P014 :ADC 通道 12(AN012)映射到 P014 引脚,即 ADC 采样的模拟信号输入在 P014 引脚。
● AN013 → P015 :ADC 通道 13(AN013)映射到 P015 引脚,即 ADC 采样的模拟信号输入在 P015 引脚。

在这里插入图片描述

回调函数

实现了一个ADC回调函数,并在扫描完成时设置 scan_complete_flag 标志位为 true,以便通知主程序扫描已完成。

volatile bool scan_complete_flag = false;
void adc_callback (adc_callback_args_t * p_args)
{
    //宏将告知编译器回调函数不使用参数 p_args,从而避免编译器发出警告,
    FSP_PARAMETER_NOT_USED(p_args);
    scan_complete_flag = true;
}

主程序

通过ADC对多个通道进行采样,并计算采样数据的平均值与相应的电压值,最后打印出每个通道的数字输出和电压值。

    while(1)
    {
        uint16_t adc_data12=0;
        double a12;
        uint16_t adc_data13=0;
        double a13;
        /* Enable scan triggering from ELC events. */
        (void) R_ADC_ScanStart(&g_adc0_ctrl);
        scan_complete_flag = false;
        while (!scan_complete_flag)
        {
            /* Wait for callback to set flag. */
        }

        err = R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_12, &adc_data12);
        assert(FSP_SUCCESS == err);
        a12=(double)(adc_data12/4095.0)*3.3;
        printf("P014(AN12)=%d,voltage=%f\n",adc_data12,a12);

        err = R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_13, &adc_data13);
        assert(FSP_SUCCESS == err);
        a13=(double)(adc_data13/4095.0)*3.3;
        printf("P015(AN13)=%d,voltage=%f\n",adc_data13,a13);

        R_BSP_SoftwareDelay (1000, BSP_DELAY_UNITS_MILLISECONDS);
    }

演示结果

给P014接入3.3V,给P015接入GND,结果如下所示。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/981416.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

编写一个基于OpenSSL的SSL/TLS服务端(HTTPS)可运行的完整示例

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

MyBatis的关联映射

前言 在实际开发中,对数据库的操作通常会涉及多张表,MyBatis提供了关联映射,这些关联映射可以很好地处理表与表,对象与对象之间的的关联关系。 一对一查询 步骤: 先确定表的一对一关系确定好实体类,添加关…

利用Git和wget批量下载网页数据

一、Git的下载(参考文章) 二. wget下载(网上很多链接) 三、git和wget结合使用 1.先建立一个文本,将代码写入文本(代码如下),将txt后缀改为sh(download_ssebop.sh&#xf…

deepseek助力运维和监控自动化

将DeepSeek与Agent、工作流及Agent编排技术结合,可实现IT运维与监控的智能化闭环管理。以下是具体应用框架和场景示例: 一、智能Agent体系设计 多模态感知Agent 日志解析Agent:基于DeepSeek的NLP能力,实时解析系统日志中的语义&a…

从零开始实现机器臂仿真(UR5)

1. UR5软件配置 # 安装 MoveIt! 依赖 sudo apt install ros-humble-moveit ros-humble-tf2-ros ros-humble-moveit-setup-assistant ros-humble-gazebo-ros-pkgs # 安装 UR 官方 ROS2 驱动 sudo apt update sudo apt install ros-humble-ur-robot-driver ros-humble-ur-descri…

h5 IOS端渐变的兼容问题 渐变实现弧形效果

IOS端使用渐变的时候有兼容问题 以下是问题效果,图中黑色部分期望的效果应该是白色的。但是ios端是下面的样子…… 安卓pc 支持: background-image: radial-gradient(circle 40rpx at 100% 0, #f3630c 40rpx, rgb(255, 255, 255) 50%);安卓pc ios支持…

文件上传漏洞与phpcms漏洞安全分析

目录 1. 文件上传漏洞简介 2. 文件上传漏洞的危害 3. 文件上传漏洞的触发条件 1. 文件必须能被服务器解析执行 2. 上传目录必须支持代码执行 3. 需要能访问上传的文件 4. 例外情况:非脚本文件也可能被执行 4. 常见的攻击手法 4.1 直接上传恶意文件 4.2 文件…

DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)📚前言📚页面效果📚指令输入…

「多开浏览器」颜值升级之「消灭堆叠的窗口」(二)

01 传统指纹浏览器的架构 传统指纹浏览器(也称为多用户浏览器或反检测浏览器)是一种用于模拟多个独立用户环境的技术工具,主要用于网络爬虫、广告验证、社交媒体管理等场景。其核心目标是通过模拟不同的浏览器指纹(Browser Finge…

IndexError: index 0 is out of bounds for axis 1 with size 0

IndexError: index 0 is out of bounds for axis 1 with size 0 欢迎来到英杰社区,这里是博主英杰https://bbs.csdn.net/topics/617804998 报错原因 数组或数据结构为空 如果数组或 DataFrame 在指定的维度上没有任何元素(例如,没有列&#x…

本地部署阿里万象2.1文生视频模型(Wan2.1-T2V)完全指南

在生成式AI技术爆发式发展的今天,阿里云开源的万象2.1(Wan2.1)视频生成模型,为创作者提供了从文字/图像到高清视频的一站式解决方案。本文针对消费级显卡用户,以RTX 4060 Ti 16G为例,详解本地部署全流程与性能调优方案,涵盖环境配置、多模型选择策略、显存优化技巧及实战…

[Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程

[Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程 简介 multiprocessing 模块 Process 类 僵尸进程与孤儿进程 简介 在前面的进程理论的介绍当中我们已经介绍了进程的概念、并发与并行的区别以及进程并发的实现理论,这些都…

飞书考勤Excel导入到自己系统

此篇主要用于记录Excel一行中,单条数据的日期拿取,并判断上下班打卡情况。代码可能满足不了大部分需求,目前只够本公司用,如果需要,可以参考。 需要把飞书月度汇总的考勤表导入系统中可以参考下。 下图为需要获取的年…

Python项目】基于Python的图像去雾算法研究和系统实现

Python项目】基于Python的图像去雾算法研究和系统实现 技术简介:采用Python技术、MYSQL数据库等实现。 系统简介:图像去雾系统主要是基于暗通道先验和逆深度估计技术的去雾算法,系统功能模块分为(1)图像上传模块&…

游戏引擎学习第135天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾 game_asset.cpp 的创建 在开发过程中,不使用任何现成的游戏引擎或第三方库,而是直接基于 Windows 进行开发,因为 Windows 目前仍然是游戏的标准平台,因此首先在这个环境中进行…

【Linux】冯诺依曼体系结构-操作系统

一.冯诺依曼体系结构 我们所使用的计算机,如笔记本等都是按照冯诺依曼来设计的: 截止目前,我们所知道的计算机都是由一个一个的硬件组装起来的,这些硬件又由于功能的不同被分为了输入设备,输出设备,存储器…

[liorf_localization_imuPreintegration-2] process has died

使用liorf,编译没报错,但是roslaunch报错如下: 解决方法: step1: 如果你之前没有安装 GTSAM,可以尝试安装它 step2: 检查是否缺少依赖库 ldd /home/zz/1210/devel/lib/liorf_localization/liorf_localization_imuPr…

模块11_面向对象

文章目录 模块11_面向对象模块十回顾&&模块十一重点 第一章.接口1.接口的介绍2.接口的定义以及使用3.接口中的成员3.1抽象方法3.2默认方法3.3静态方法3.4成员变量3.4成员变量 4.接口的特点5.接口和抽象类的区别 第二章.多态1.多态的介绍2.多态的基本使用3.多态的条件下…

常见webshell工具的流量特征

1、蚁剑 1.1、蚁剑webshell静态特征 蚁剑中php使用assert、eval执行;asp只有eval执行;在jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征。 1.2、蚁剑webshell动态特征 查看流量分析会发现…

03标准IO接口

一、系统与标准IO的区别 相同点:系统IO与标准IO都可以操作linux系统下的文件。 ⭐不同点: 系统IO:打开文件得到的是一个整数,称为文件描述符。 标准IO:打开文件得到的是一个指针,称为文件指针。系统IO:可以访问linux…