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

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

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

概述

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

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

在这里插入图片描述

视频教学

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

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

样品申请

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

硬件准备

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

在这里插入图片描述

参考程序

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

https://gitee.com/CoreMaker/RA2E1

源码下载

ADC属性配置

添加P101通道。

在这里插入图片描述

● 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(数值越小,优先级越高)。
● AN019 → P103 :ADC 通道 19(AN019)映射到 P103 引脚,即 ADC 采样的模拟信号输入在 P103 引脚。
● AN021 → P101 :ADC 通道 21(AN021)映射到 P101 引脚,即 ADC 采样的模拟信号输入在 P101 引脚。

在这里插入图片描述

回调函数

实现了一个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_data19=0;double a19;uint16_t adc_data21=0;double a21;/* 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_19, &adc_data19);assert(FSP_SUCCESS == err);a19=(double)(adc_data19/4095.0)*3.3;printf("P103(AN19)=%d,voltage=%f\n",adc_data19,a19);err = R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_21, &adc_data21);assert(FSP_SUCCESS == err);a21=(double)(adc_data21/4095.0)*3.3;printf("P101(AN19)=%d,voltage=%f\n",adc_data21,a21);R_BSP_SoftwareDelay (1000, BSP_DELAY_UNITS_MILLISECONDS);}

演示结果

给P103接入3.3V,给P101接入GND,结果如下所示。

在这里插入图片描述

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

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

相关文章

FPGA标准库-Open Logic

在现代技术发展的浪潮中,开源项目已经成为了推动技术创新和发展的核心力量。无论是人工智能、区块链、云计算,还是传统的嵌入式开发、操作系统,开源项目都在其中扮演着至关重要的角色。它们不仅促进了技术的快速迭代,也为全球开发…

FineReport 操作注意

1.父单元格重复的时候,如何取消合并 效果如下: 只需要在单元格中,将数据设置为【列表】即可。 2.待定

开源之夏经验分享|Koupleless 社区黄兴抗:在开源中培养工程思维

开源之夏经验分享|Koupleless 社区黄兴抗:在开源中培养工程思维 文|黄兴抗 电子信息工程专业 Koupleless 社区贡献者 就读于南昌师范学院,电子信息工程专业的大三学生。 本文 2634 字,预计阅读 7​ 分钟​ 今天 SOFAStack 邀…

Ollama存在安全风险的情况通报及解决方案

据清华大学网络空间测绘联合研究中心分析,开源跨平台大模型工具Ollama默认配置存在未授权访问与模型窃取等安全隐患。鉴于目前DeepSeek等大模型的研究部署和应用非常广泛,多数用户使用Ollama私有化部署且未修改默认配置,存在数据泄露、算力盗…

线代[9]|线性代数主要内容及其发展简史(任广千《线性代数的几何意义》的附录1)

文章目录 向量行列式矩阵线性方程组二次型 向量 向量又称为矢量,最初应用与物理学。很多物理量如力、速度、位移以及电场强度、磁感应强度等等都是向量。大约公元前350年前,古希腊著名学者亚里士多德就知道了力可以表示成向量,两个力的组合作…

H20半精度推理报错:Floating point exception (core dumped)

Nvidia H20 显卡在执行bf16,f16推理时程序异常中断 时间是 2025年3月4日 课题组新到的8卡H20服务器在使用过程中,torch加载模型进行bf16的推理时,出现Floating point exception (core dumped)错误 当时一头雾水,后来苦苦寻找&…

服务是否设置为开机自启动

在 Linux 系统中,可以通过以下几种方法检查服务是否设置为开机自启动: 方法 1:使用 systemctl 命令(适用于 systemd 系统) systemctl 是 systemd 系统的命令行工具,用于管理系统服务。以下是具体步骤&…

QT——基于 QListWidget 和 QStackedWidget 的页面切换

Qt 练习题:基于 QListWidget 和 QStackedWidget 的页面切换 Qt 练习题:基于 QListWidget 和 QStackedWidget 的页面切换 题目描述: 请使用 Qt 设计一个窗口,其中包含一个 QListWidget 和一个 QStackedWidget。要求实现以下功能&a…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例2: 分页和排序

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

C语言文件操作学习笔记:从基础到实践

在C语言的知识体系中,文件操作是极为关键的一环,它赋予了程序存储和读取外部数据的能力,对于开发各类实用程序至关重要。近期,借助课程的学习,我对C语言文件操作进行了系统且深入的学习,下面将我的学习心得…

VLM-E2E:通过多模态驾驶员注意融合增强端到端自动驾驶

25年2月来自香港科大广州分校、理想汽车和厦门大学的论文“VLM-E2E: Enhancing End-to-End Autonomous Driving with Multimodal Driver Attention Fusion”。 人类驾驶员能够利用丰富的注意语义,熟练地应对复杂场景,但当前的自动驾驶系统难以复制这种能…

第十天-字符串:编程世界的文本基石

在编程的广阔领域中,字符串是极为重要的数据类型,它就像一座桥梁,连接着人类的自然语言和计算机能够理解与处理的数字信息。下面,让我们深入探索字符串的世界。 一、字符串简介 字符串是由零个或多个字符组成的有序序列&#xff…

《基于HarmonyOS NEXT API 12+,搭建新闻创作智能写作引擎》

在信息爆炸的时代,新闻行业对于内容生产的效率和质量有着极高的要求。AI技术的发展为新闻创作带来了新的变革契机,借助AI智能写作助手,新闻工作者可以快速生成新闻稿件的初稿,大大提高创作效率。本文将基于HarmonyOS NEXT API 12及…

基于STM32的环境监测系统(自制蓝牙APP)

目录 项目概述 实物图 演示视频 概述 硬件模块 原理图以及PCB 0.96寸OLED屏幕(SSD1306) CubeMX配置 初始化代码 MQ-2烟雾传感器 CubeMX配置 初始化代码 DHT11温湿度模块 驱动代码 HC-05蓝牙模块 CubeMX配置 ​编辑 空闲中断回调函数 有…

linux离线安装ollama并部署deepseek-r1模型 指南

这篇文章主要分为两部分: (1)离线环境下如何部署Ollama; (2)在离线环境下如何配置大模型,其中这一步又分为:  1)部署完整的deepseek大模型,如:deepseek-r1:32B;  2)部署蒸馏版模型,如&#xf…

坐标变换介绍与机器人九点标定的原理

【备注】本文的C#代码在下面链接中可以下载:Opencv的C#九点标定代码资源-CSDN文库 https://download.csdn.net/download/qq_34047402/90452336 一、坐标变换的介绍 1.绕原点旋转的坐标变换 一个点(x,y)绕原点旋转u度,其旋转后的坐标(x1,y1)如何计算? 2.绕任意点的坐标变…

大语言模型 智能助手——既能生成自然语言回复,又能在必要时调用外部工具获取实时数据

示例代码: import json from langgraph.graph import Graph, END,StateGraph from langchain_core.utils.function_calling import convert_to_openai_function from langchain_community.tools.openweathermap import OpenWeatherMapQueryRun from langchain_core…

FPGA学习(一)——DE2-115开发板编程入级

FPGA学习(一)——DE2-115开发板编程入级 一、实验目的 通过 1 位全加器的详细设计,深入掌握原理图输入以及 Verilog 的两种设计方法,熟悉 Quartus II 13.0 软件的使用流程,以及在 Intel DE2-115 开发板上的硬件测试过…

中间件专栏之MySQL篇——MySQL事务原理、锁机制分析

MySQL的事务性也是其重要特性之一。 什么是事务:事务的本质是并发控制的单元,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是 一个不可分割的工作单位。 目的:事务的目的在于将数据库从一种一致性状态转…

机器学习的三个基本要素

机器学习的基本要素包括模型、学习准则(策略)和优化算法三个部分。机器学习方法之间的不同,主要来自其模型、学习准则(策略)、优化算法的不同。 模型 机器学习首要考虑的问题是学习什么样的模型(Model&am…