杰发科技AC7840——ADC简介(1)_双路ADC同时使用

news/2024/5/20 5:36:08

0. 简介

1. 特性

2. 双路ADC

Sample里面没有双路的,以为那个规则组只有一个通道,看了外设寄存器才发现,原来他的通道是双路的。

注意1: ADC硬件引脚的配置

注意2: 规则组长度设置和

RSEQ序列号和CH通道号组合应该就对应了转换顺序,如下图所示配置

 ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_0, ADC_CH_9);ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_1, ADC_CH_8);ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_2, ADC_CH_12);ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_3, ADC_CH_1);ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_4, ADC_CH_5);ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_5, ADC_CH_4);ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_6, ADC_CH_7);ADC_ConfigChannel(ADC_INDEX, ADC_ISEQ_0, ADC_CH_12);ADC_ConfigChannel(ADC_INDEX, ADC_ISEQ_1, ADC_CH_7);ADC_ConfigChannel(ADC_INDEX, ADC_ISEQ_2, ADC_CH_13);

代码如下:

void ADC_Init(void)
{adc_converter_config_t adcConfig;/*! ADC输入端口(电位器)配置*/GPIO_DRV_SetMuxModeSel(VR1_PORT, VR1_PIN, PORT_PIN_DISABLED); /*! 电位器VR1*/GPIO_DRV_SetMuxModeSel(VR2_PORT, VR2_PIN, PORT_PIN_DISABLED); /*! 电位器VR2*/GPIO_DRV_SetMuxModeSel(PORTD, 2, PORT_PIN_DISABLED);          /*! 电位器VR2*//*! ADC配置配置ADC为12位分辨率,工作模式为MODE3规则组扫描+注入组扫描模式多通道单次转换,规则组长度为4。每触发一次进行一次ADC转换,每次转换规则组中的4个通道。*/ADC_DRV_Init(ADC_INDEX);ADC_DRV_InitConverterStruct(&adcConfig);adcConfig.clockDivide = ADC_CLK_DIVIDE_6;        /*! ADC时钟分频。ADC时钟源选择在时钟初始化里配置,此例程选择为SPLLDIV2_CLK,频率为60MHz*/adcConfig.resolution = ADC_RESOLUTION_12BIT;     /*! ADC分辨率设置*/adcConfig.regularTrigger = ADC_TRIGGER_INTERNAL; /*! 规则组触发源类型选择*/adcConfig.injectTrigger = ADC_TRIGGER_INTERNAL;  /*! 注入组触发源类型选择*/adcConfig.dmaEnable = false;                     /*! DMA使能位*/adcConfig.voltageRef = ADC_VOLTAGEREF_VREF;      /*! ADC参考电压源选择,VREF/VDDA*/adcConfig.scanModeEn = true;                     /*! 工作模式配置:扫描模式使能位,多通道时需要使能扫描模式,单个通道时不需要使能扫描*/adcConfig.continuousModeEn = false;              /*! 工作模式配置:连续模式使能位,1:触发后可连续转换,0:触发一次只转换一次,转换完成后停止*/adcConfig.regularDiscontinuousModeEn = false;    /*! 工作模式配置:规则组不连续模式使能位*/adcConfig.injectDiscontinuousModeEn = false;     /*! 工作模式配置:注入组不连续模式使能位*/adcConfig.injectAutoModeEn = false;              /*! 工作模式配置:自动注入模式使能位*/adcConfig.intervalModeEn = false;                /*! 工作模式配置:间隔模式使能位*/adcConfig.regularDiscontinuousNum = 0;           /*! 规则组子组长度 (用于mode7)*/adcConfig.regularSequenceLength = 4;             /*! 规则组长度设置*/adcConfig.injectSequenceLength = 0;              /*! 注入组长度设置*/adcConfig.powerEn = true;                        /*! ADC上电*/ADC_DRV_ConfigConverter(ADC_INDEX, &adcConfig);  /*! 初始化ADC配置*//*! ADC通道配置*/ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_0, VR1_ADC_CH);     /*! 电位器VR1对应通道*/ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_1, VR2_ADC_CH);     /*! 电位器VR2对应通道*/ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_2, ADC_CH_TSENSOR); /*! 内部温度传感器通道*/ADC_ConfigChannel(ADC_INDEX, ADC_RSEQ_3, ADC_CH_SUPPLY);  /*! 内部供电电压通道*/ADC_DRV_Init(ADC1_INDEX);ADC_DRV_InitConverterStruct(&adcConfig);adcConfig.clockDivide = ADC_CLK_DIVIDE_6;            /*! ADC时钟分频。ADC时钟源选择在时钟初始化里配置,此例程选择为SPLLDIV2_CLK,频率为60MHz*/adcConfig.resolution = ADC_RESOLUTION_12BIT;         /*! ADC分辨率设置*/adcConfig.regularTrigger = ADC_TRIGGER_INTERNAL;     /*! 规则组触发源类型选择*/adcConfig.injectTrigger = ADC_TRIGGER_INTERNAL;      /*! 注入组触发源类型选择*/adcConfig.dmaEnable = false;                         /*! DMA使能位*/adcConfig.voltageRef = ADC_VOLTAGEREF_VREF;          /*! ADC参考电压源选择,VREF/VDDA*/adcConfig.scanModeEn = true;                         /*! 工作模式配置:扫描模式使能位,多通道时需要使能扫描模式,单个通道时不需要使能扫描*/adcConfig.continuousModeEn = false;                  /*! 工作模式配置:连续模式使能位,1:触发后可连续转换,0:触发一次只转换一次,转换完成后停止*/adcConfig.regularDiscontinuousModeEn = false;        /*! 工作模式配置:规则组不连续模式使能位*/adcConfig.injectDiscontinuousModeEn = false;         /*! 工作模式配置:注入组不连续模式使能位*/adcConfig.injectAutoModeEn = false;                  /*! 工作模式配置:自动注入模式使能位*/adcConfig.intervalModeEn = false;                    /*! 工作模式配置:间隔模式使能位*/adcConfig.regularDiscontinuousNum = 0;               /*! 规则组子组长度 (用于mode7)*/adcConfig.regularSequenceLength = 1;                 /*! 规则组长度设置*/adcConfig.injectSequenceLength = 0;                  /*! 注入组长度设置*/adcConfig.powerEn = true;                            /*! ADC上电*/ADC_DRV_ConfigConverter(ADC1_INDEX, &adcConfig);     /*! 初始化ADC配置*/ADC_ConfigChannel(ADC1_INDEX, ADC_RSEQ_0, ADC_CH_2); /*! 内部供电电压通道*/
}


http://www.mrgr.cn/p/64338068

相关文章

UniAD:以规划为导向的端到端自动驾驶

文章链接 这个文章是CVPR2023 Best Paper https://arxiv.org/pdf/2212.10156 提出背景 以往的自动驾驶多数是为不同的任务场景设计部署单独的模型,这样子组成的系统会很复杂如图a。 图b这是多任务共享一个主干,但还是要分离训练,而且不是…

ChatGPT有记忆了?!持久记忆(Memory)功能详细解读和教程!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

如何使得 单个项目有与其他项目 不一样的对齐方式

今天修改项目的样式,有这么个问题,便记录下。 align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于…

如何解决升级IntelliJ IDEA 2024后 打开项目就自动闪退关闭问题的终极指南

title: “🐯 解决升级IntelliJ IDEA 2024后项目自动关闭的终极指南” date: 2024-04-23 author: 猫头虎 profile: CSDN 文章目录 title: "🐯 解决升级IntelliJ IDEA 2024后项目自动关闭的终极指南" date: 2024-04-23 author: 猫头虎 profile: …

萌面匣超萌的小金刚

一款非常精致的金属机箱来了这款机箱支持的主板:畅网微控 P5 N100、N200、N305 V3版本的开发版 特点:卖家定制了背板+定制万兆网卡的转接板说说优点:贵 这款6盘的机箱是2.5英寸的小硬盘机箱 散热不错,也不怕化了 戴尔的硬盘架很专业 支持万兆 带wifi的小机器 适合长期使用,…

Games 101: 旋转矩阵

旋转矩阵 本文主要介绍了旋转矩阵的推导,分为两种方式:旋转坐标 旋转坐标轴 以下坐标系都是右手坐标系旋转坐标 已知坐标点\(A(x_a,y_a)\), 旋转\(\theta\)角后变为坐标点\(B(x_b,y_b)\),求解旋转矩阵.\[{\large \begin{align*} \begin{split} x_a &=r_a \cdot cos(\alp…

ROS学习-启动服务端错误debug

ros2 run examples_rclpy_minimal_service service 输入这个命令用于运行服务节点,这个服务的功能是将两个数字相加,给定a,b两个数,返回sum也就是ab之和。 报错: 2024-04-27 13:11:39.105 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7412:open_and_lock_f…

Echarts多条折线图line显示数值和真实数值不一致

问题图: 折线图数据显示不匹配原因:在line的配置项中加了"stack"这一项配置,stack为‘Total’或‘总量’的情况下,y轴不是真实的value的值,而是value的总量值。既后续折现的数值在前数值的基础上相加. 官网对stack的描述:数据堆叠,同个类目轴上系…

mysql定时执行语句

一、前提 #确保事件调度为开放(ON) SHOW VARIABLES LIKE event_scheduler;二、场景 1、创建test01 表,表中存储1000条数据; 2、创建空表test02,表结构与 test01相同; 3、将test01中的数据以每分钟10条的形式转移到test02中去三、…

Docker深入探索:网络与资源控制、数据管理与容器互联以及镜像生成

目录 一、 Docker网络 (一)Docker网络实现原理 (二)Docker网络模式 1. Bridge网络(默认) 2. Host网络 3. None网络 4. Container网络 5. 自定义网络 二、资源控制 (一)cgr…

IDELAY约束测试

前置条件: DDR模式 LR RISE:1.9-2.1 FALL:1.9-2.1 约束情况1: value:0 IBUF-BUFG-IDELAYE2-IDDR value:0 IBUF-IDELAYE2-IDDRmodule rgmii_dphy (input wire sys_rst_n ,input wire sys_ref_200mhz ,//eth input wire i_eth_r…

补充centos7软件包的方式/编译安装源码包软件/企业案例/linux进程管理/企业管理进程系列命令(企业经验)--8820字详谈

cenros7软件包的安装方式 软件包分类安装方式优缺点rpm包软件开发商编译打包,安装简单,快速软件版本可能偏低,安装路径是固定好的源码包自己手动编译安装并且复杂软件爸爸随意选,可以定制安装路径二进制包解压就可以使用不能进行…

搭建单机版伪分布式Hadoop+Scala+spark

搭建单机版伪分布式Hadoop+Scala+spark 修改ip [root@master ~]# nmcli connection add ifname ens32 con-name ens32 autoconnect yes ipv4.method manual ipv4.gateway 192.168.130.2 ipv4.addresses 192.168.130.102/24 ipv4.dns 114.114.114.114 [root@master ~]# nmcli co…

3D打印机箱(冲浪的羊)

有两款机箱,4盘和6盘机箱 外观尺寸223*227*215mm 材料PETG 优点:外观迷你 使用戴尔的硬盘架,插入非常顺滑,质感很好。服务器的做工真的很好,手感有分量。另外这块硬盘架还支持2.5英寸硬盘安装。 上面的主板最大支持19*19cm 可以扩展两个PCIE半高设备,对于一些老主板特别有…

2024-04-27:用go语言,在一个下标从 1 开始的 8 x 8 棋盘上,有三个棋子,分别是白色车、白色象和黑色皇后。 给定这三个棋子的位置,请计算出要捕获黑色皇后所需的最少移动次数。 需要注意

2024-04-27:用go语言,在一个下标从 1 开始的 8 x 8 棋盘上,有三个棋子,分别是白色车、白色象和黑色皇后。 给定这三个棋子的位置,请计算出要捕获黑色皇后所需的最少移动次数。 需要注意的是,白色车可以垂直或水平移动,而白色象可以沿对角线移动,它们不能跳过其他棋子。…

Jackson 2.x 系列【31】Spring Boot 集成之字典回写

有道无术,术尚可求,有术无道,止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址:https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 场景描述2. 案例演示2.1 修改枚举2.2 定义注解…

vue实现录音并转文字功能,包括PC端web,手机端web

vue实现录音并转文字功能,包括PC端,手机端和企业微信自建应用端 不止vue,不限技术栈,vue2、vue3、react、.net以及原生js均可实现。 原理 浏览器实现录音并转文字最快捷的方法是通过Web Speech API来实现,这是浏览器…

Abaqus压电材料分析

404Abaqus-Material: Piezoelectric behavior 压电本构方程:压电材料行为定义所需:密度(optional) 线弹性-刚度矩阵(S_ijkl or D_ijkl) Piezoelectric-压电应变常数矩阵 Dielectric(electric permittivity)-介电常数矩阵压电材料的主要特性参数压电常数: 压电常数是衡量材料压电…

力扣-54. 螺旋矩阵

1.题目 题目地址(54. 螺旋矩阵 - 力扣(LeetCode)) https://leetcode.cn/problems/spiral-matrix/ 题目描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]…

更易使用,OceanBase开发者工具 ODC 4.2.4 版本升级

亲爱的朋友们,大家好!我们的ODC(OceanBase Developer Center )再次迎来了重要的升级V 4.2.4,这次我们诚意满满,从五个方面为大家精心打造了一个更加易用、贴心,且功能更强的新版本,相…