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

02-RT1060 双ADC采样+eDMA传输

RT1060-双ADC+eDMA外设的配合使用

该项目是基于MIMXRT1060-EVKB官方开发板编写的驱动。

一、头文件包含介绍

#include "pin_mux.h"
#include "clock_config.h"
#include "board.h"
#include "fsl_adc.h"
#include "fsl_adc_etc.h"
#include "fsl_pit.h"
#include "fsl_xbara.h"
#include "fsl_common.h"
#include "fsl_iomuxc.h"
#include "fsl_edma.h"
#include "fsl_dmamux.h"

上面代码段是需要包含的头文件,分别由ADC相关的fsl_adc.h、fsl_adc_etc.h,定时触发的周期定时器fsl_pit.h,触发链接的fsl_xbara.h和DMA相关的fsl_edma.h、fsl_dmamux.h,其他几个是使用IO初始化部分系统时需要用到的头文件。

二、自定义宏介绍

//1.ADC配置
#define USER_ADC1_BASE          ADC1
#define ADC1_USER_CHANNEL       16U
#define ADC1_CHANNEL_GROUP      4U#define USER_ADC2_BASE          ADC2
#define ADC2_USER_CHANNEL       16U
#define ADC2_CHANNEL_GROUP      5U//2.ADC DMA配置设置
#define ADC_DMA                 DMA0
#define USER_DMAMUX             DMAMUX
#define ADC1_EDMA_CHANNEL       4
#define ADC2_EDMA_CHANNEL       5//3.多通道采样
#define USER_ADC_ETC_BASE       ADC_ETC
#define ADC1_ETC_CHAIN_LENGTH   2U
#define ADC2_ETC_CHAIN_LENGTH   4U//4.触发
#define XBARA_BASE                      XBARA1
#define ADC1_XBARA_INPUT_PITCH          kXBARA1_InputPitTrigger0
#define ADC1_XBARA_OUTPUT_ADC_ETC       kXBARA1_OutputAdcEtcXbar0Trig3
#define ADC1_ETC_XBARA_TRIGGER_CHANNELx 3       //每个ADC有4个转换通道组,ADC1对应0到3,ADC2对应4到7.
#define ADC1_ETC_XBARA_CHANNEL_BASE     0x403B00A0#define ADC2_XBARA_INPUT_PITCH          kXBARA1_InputPitTrigger1
#define ADC2_XBARA_OUTPUT_ADC_ETC       kXBARA1_OutputAdcEtcXbar1Trig3
#define ADC2_ETC_XBARA_TRIGGER_CHANNELx 7       //每个ADC有4个转换通道组,ADC1对应0到3,ADC2对应4到7.
#define ADC2_ETC_XBARA_CHANNEL_BASE     0x403B0140//5.ADC采样周期配置设置
#define USER_PIT_BASE                   PIT
#define PIT_SOURCE_CLOCK                CLOCK_GetFreq(kCLOCK_OscClk)    //得到PIT的时钟频率
#define ADC1_PIT_CHANNEL                kPIT_Chnl_0
#define ADC2_PIT_CHANNEL                kPIT_Chnl_1#define ADC1_SAMPLE_NUM                 5               //采样滤波次数
#define ADC2_SAMPLE_NUM                 5               //采样滤波次数

1.ADC配置

USER_ADC1_BASE、USER_ADC2_BASE分别定义了ADC1和ADC2,ADC1_USER_CHANNEL、ADC2_USER_CHANNEL是设置的转换通道号,取值范围为0~31;ADC1_CHANNEL_GROUP和ADC2_CHANNEL_GROUP是设置ADC的通道组,这里分别取4和5。

2.ADC DMA配置设置

系统只有DMA0,所以ADC的DMA为DMA0,ADC1_EDMA_CHANNEL定义的是DMA的通道,我这边0~3用于了其他设备,所以这里取的是通道4和5.

3.多通道采样

USER_ADC_ETC_BASE定义ADC外部触发的ADC_ETC,ADC1_ETC_CHAIN_LENGTH取2表示ADC1采集2个ADC通道,ADC2_EDMA_CHANNEL取4表示ADC2采集4个ADC通道.

4.触发

定义了ADC的触发通道,使用PIT的通道0触发XBARA1的0-3,使用PIT的通道1触发XBARA1的1-3,分别对应的ADC_ETC的转换通道3和7,查《IMXRT1060RM》手册可知ADC_ETC转换通道3的输出存储地址为0x403B00A0,ADC_ETC转换通道7的输出存储地址为0x403B0140。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.ADC采样周期

ADC的采样周期这里使用的是周期定时器

相关文章:

02-RT1060 双ADC采样+eDMA传输

RT1060-双ADC+eDMA外设的配合使用 该项目是基于MIMXRT1060-EVKB官方开发板编写的驱动。 一、头文件包含介绍 #include "pin_mux.h" #include "clock_config.h" #include "board.h" #include "fsl_adc.h" #include "fsl_adc_et…...

单值集合总复习

1:Object类的核心方法复习 Object 是所有类【引用数据类型】的 直接 / 间接 父类 toString(): 将一个 引用数据类型的对象 转换成 String 类型 class Object{//Sun //toString()不需要参数:将一个对象转换成字符串 将调用者转换成字符串 public String …...

Pyside6 布局管理器(4)--- QGridLayout的使用

一、QGridLayout的介绍(官翻) QGridLayout 获得可用的空间(由其父布局或 parentWidget() 提供),将其划分为行和列,并将其管理的每个小部件放入正确的单元格中。 列和行的行为是相同的;我们将…...

从GPT定制到Turbo升级再到Assistants API,未来AI世界,你准备好了吗?

引言 在OpenAI DevDay发布会上,OpenAI再次震撼整个人工智能行业,为AI领域带来了重大的更新。CEO Sam Altman宣布推出了定制版本的ChatGPT,这意味着用户现在可以根据自己的需求打造个性化的GPT,并分享至GPT Store。这一消息对于受…...

「漏洞复现」BladeX企业级开发平台 tenant/list SQL 注入漏洞复现(CVE-2024-33332)

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…...

基于SSM的消防物资存储系统【附源码】

基于SSM的消防物资存储系统 效果如下: 用户功能界面 仓库管理界面 物资入库管理界面 物资出库管理界面 物资详情管理界面 报警通知管理界面 安全检查提醒管理界面 管理员功能界面 研究背景 21世纪,我国早在上世纪就已普及互联网信息,互联网…...

Pseudo Multi-Camera Editing 数据集:通过常规视频生成的伪标记多摄像机推荐数据集,显著提升模型在未知领域的准确性。

2024-10-19,由伊利诺伊大学厄巴纳-香槟分校和香港城市大学的研究团队提出了一种创新方法,通过将常规视频转换成伪标记的多摄像机视角推荐数据集,有效解决了在未知领域中模型泛化能力差的问题。数据集的创建,为电影、电视和其他媒体…...

认识一下 Mochi-1--最新的免费开源人工智能视频模型

Genmo 是一家专注于视频生成的人工智能公司,该公司宣布发布 Mochi 1 的研究预览版。Mochi 1 是一种新的开源模型,可根据文本提示生成高质量视频,其性能可与 Runway 的 Gen-3 Alpha、Luma AI 的 Dream Machine、Kuaishou 的 Kling、Minimax 的…...

Spring 的事务传播机制

Spring 的事务传播机制定义了一个事务方法在遇到已经存在的事务时如何处理。事务传播属性(Propagation)提供了七种机制,以适应不同的业务需求和事务边界管理。 1. Spring 的事务传播机制的类型 (1)REQUIRED&#xff…...

线性代数(1)——线性方程组的几何意义

线性代数的基本问题是求解个未知数的个线性方程; 例如:(方程1)。 在线性代数的第一讲中,我们从Row Picture、Column Picture、Matrix Picture三个角度来看这个问题。 上面的系统是二维的。通过添加第三个变量&#…...

写给自己的一些心得体会

为什么是CSDN??? 最近跑实验跑得绝望,感觉自己兜兜转转走了太多太多的弯路,我不知道这样的弯路什么时候是个尽头,就像在USJ排队,看似好像要到入口了,实则一转头还是无尽绵延的队伍。走了这么多弯路,总要…...

论文阅读(二十九):Multi-scale Interactive Network for Salient Object Detection

文章目录 Abstract1.Introduction2.Scale VariationProposed Method3.1Network Overview3.2Aggregate Interaction Module3.3 Self-Interaction Module3.4Consistency-Enhanced Loss 4.Experiments4.1Implementation Details4.2 Comparison with State-of-the-arts4.3Ablation …...

常见存储器及其特点

: 一、只读存储器(ROM)及其类型 1. ROM 特点:存储的数据固定不变,只能读出不能写入,且断电后数据不丢失。应用:通常用于存储系统程序,如BIOS等。 2. PROM(可编程只读…...

《向量数据库指南》——text-embedding-3-large与Mlivus Cloud打造语义搜索新纪元

使用text-embedding-3-large生成向量并将向量插入Mlivus Cloud实现高效语义搜索的深度解析与实战操作 在数字化时代,数据的处理和存储方式正在经历前所未有的变革。特别是随着大数据和人工智能技术的快速发展,向量数据库作为一种新型的数据存储和查询方式,正逐渐受到越来越…...

通过 Bytebase API 查看数据库审计日志

原文地址代码库 Bytebase 是一款数据库 DevOps 和 CI/CD 工具,专为开发者、DBA 和平台工程团队设计。虽然它提供了直观的 GUI 来管理数据库 schema 变更和访问控制,但有些团队可能希望使用 Bytebase API 将 Bytebase 集成到现有的 DevOps 平台中。 在之…...

# 渗透测试# 1.安全见闻(6)通讯协议

安全见闻6 通讯协议 ##B站陇羽Sec## 潜在的安全问题所涉及的领域 无线电安全,协议分析,web渗透,逆向分析 通讯协议涉及的安全主要包括以下几个方面: 1.1 保密性问题 …...

[Gdiplus/Gdi]_[中级]_[实现多行文本的多种颜色绘制-富文本绘制]

场景 在开发WTL/WIN32界面程序时,有时候需要绘制多行的段落文本,但是文本里的数值需要设置红色以便能让人第一时间关注到它。这种文本可以称之为富文本。GDI的DrawText和GDIPlus的DrawString方法都只能连续绘制某个颜色的文本。怎么实现?说明 在《绘图实现单行文本的多种颜色…...

Ubuntu如何创建一个子用户并赋与管理员权限

在Ubuntu操作系统中,如何创建一个子用户并赋与管理员权限 一、创建用户 sudo useradd -m -s /bin/bash test详细解释: sudo:以超级用户(root)权限执行该命令。useradd 命令通常需要管理员权限,因此需要加上 sudo。 useradd:创建新用户的命令。 -m:指示系统为新用户创建…...

【Linux | IO多路复用】epoll的底层原理详解

epoll 是一种高效的 I/O 多路复用机制,广泛用于 Linux 系统中,用于处理大量并发的文件描述符。它比传统的 select 和 poll 方法具有更好的性能,特别是在处理大量并发连接时。 1.epoll的设计思路 epoll是在select 出现 N 多年后才被发明的&a…...

npm run serve 提示异常Cannot read property ‘upgrade‘ of undefined

npm run serve 提示Cannot read property ‘upgrade’ of undefined 一般是proxy的target代理域名问题导致的,如下: 解决方案: proxy: { “/remoteDealerReportApi”: { target: ‘http://demo-.com.cn’, //此域名有问题,会导致…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...