M0基础篇之ADC
本节课使用到的例程
一、Single模式例程基本配置的解释
在例程中我们只使用到了PA25这一个通道,因此我们使用的是Single这个模式,也就是我们在配置模式的时候使用的是单一转换。
进行多个通道的测量我们可以使用Sequence这个模式。
二、Single模式例程基本代码讲解
DL_ADC12_getPendingInterrupt(ADC12_0_INST)
这个函数是获取当前优先级最高的一个中断(也就是ADC0里面最高的一个中断),如果这个中断是DL_ADC12_IIDX_MEM0_RESULT_LOADED这个的话,那就进行后续的操作。
但是DL_ADC12_getPendingInterrupt()这个函数有两个功能:
(1)获取当前优先级最高的中断
(2)清楚这个中断的标志位
如果我们不使用switch case这个里面的DL_ADC12_getPendingInterrupt()这个语句的代码,那么这个中断的标志位就没有被清零,这样也就会造成一些问题:ADC只能进一次中断,第二次就没有办法进来了。
ADC就按照官方给的这个例程的格式来写
三、Single模式自己写的示例代码
(1)syscfg配置
只需要修三个部分
一个是选择ADC的通道
一个是选择存储的中断
其他的配置保持默认
(2)自己练习写示例代码
#include "ti_msp_dl_config.h"volatile bool gCheckADC;
volatile uint16_t gAdcResult;int main(void)
{SYSCFG_DL_init();NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN);//开启ADC中断(中断名称)while (1){gCheckADC = false;//设定一个标志位DL_ADC12_startConversion(ADC12_0_INST);//ADC开始转换while (false == gCheckADC) ;//ADC转换完成之后false变成true,此时跳出while循环gAdcResult = DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0);//获取ADC转换完成后采集到的值DL_ADC12_enableConversions(ADC12_0_INST);//使能下一次的转换}
}void ADC12_0_INST_IRQHandler(void)//中断服务函数的名字
{switch (DL_ADC12_getPendingInterrupt(ADC12_0_INST)) //获取当前优先级最高的中断{case DL_ADC12_IIDX_MEM0_RESULT_LOADED:gCheckADC = true;break;default:break;}
}
浮空输入采集到的ADC的值
置高电平采集到的ADC的值
接地采集到的ADC的值
四、Sequence模式例程基本配置的解释
五、Sequence模式自己写的示例代码
(1)syscfg配置
(2)自己练习写示例代码
#include "ti_msp_dl_config.h"volatile bool ADC_Flag;
volatile uint16_t ADC_Value0;
volatile uint16_t ADC_Value1;int main(void)
{SYSCFG_DL_init();NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN);while (1){ADC_Flag=false;DL_ADC12_startConversion(ADC12_0_INST);/*启动转换只有一次,是因为该启动转换是针对ADC0,是这一个序列的转换因此我们虽然开启了两路ADC,但是不需要启动两次ADC转换*/while(ADC_Flag==false);ADC_Value0=DL_ADC12_getMemResult(ADC12_0_INST,DL_ADC12_MEM_IDX_0);//PA25ADC_Value1=DL_ADC12_getMemResult(ADC12_0_INST,DL_ADC12_MEM_IDX_1);//PB24DL_ADC12_enableConversions(ADC12_0_INST);}
}void ADC12_0_INST_IRQHandler(void)
{switch (DL_ADC12_getPendingInterrupt(ADC12_0_INST)){case DL_ADC12_IIDX_MEM1_RESULT_LOADED://只需要写最后一个存储器ADC_Flag=true;break;default:break;}
}
还有一个就是给GPIO的引脚输出高电平,让高电平引脚PA26和PB24相连,测它的电压
ADC0和ADC1要添加两个ADC的组,不是在一个ADC里面进行配置
相关文章:

M0基础篇之ADC
本节课使用到的例程 一、Single模式例程基本配置的解释 在例程中我们只使用到了PA25这一个通道,因此我们使用的是Single这个模式,也就是我们在配置模式的时候使用的是单一转换。 进行多个通道的测量我们可以使用Sequence这个模式。 二、Single模式例程基…...
Nginx安全防护与HTTPS部署
一、安全防护与HTTPS概念 一、安全防护与HTTPS概念 为什么要隐藏版本号? 当访问网站时,能从响应标头查看到server的信息,这里面就包含了是什么web应用及其版本为你提供的服务。如果不隐藏server的版本,会导致别有用心的人知晓…...
C语言_程序的段
在 C 语言程序中,内存通常被分为多个逻辑段,每个段存储不同类型的数据。理解这些段的结构和功能,有助于你更高效地编写、调试和优化程序。以下是 C 语言程序中主要的内存段及其特点: 1. 代码段(Text Segment) 存储内容:编译后的机器指令(程序代码)。特性: 只读:防止…...

OSPF综合实验实验报告
OSPF综合实验实验报告 一、实验拓扑 二、实验要求 1.R5为ISP,其上只能配置IP地址;R4作为企业边界路由器, 出口公网地址需要通过PPP协议获取,并进行chap认证 2,整个OSPF环境IP基于172.16.0.0/16划分; 3&…...

vue3+ant design vue + Sortable实现多级表格列拖动
1、最近遇到个需求,需使用vue3ant design vue Sortable实现多级表格的表头允许用户拖拽移动。即当用户拖拽一级表头时,其对应的子级表头及数据应同步移动,并且只允许一级非固定表头允许拖拽。 2、代码 <a-table:data-source"rowDat…...

基于开源链动2+1模式AI智能名片S2B2C商城小程序的分销价格管控机制研究
摘要:本文聚焦开源链动21模式AI智能名片S2B2C商城小程序在分销体系中的价格管控机制,通过解析其技术架构与商业模式,揭示平台如何通过"去中心化裂变中心化管控"双轨机制实现价格统一。研究显示,该模式通过区块链存证技术…...

阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
作者:裘文成(翊韬) 摘要 随着企业全球化业务的扩展,如何高效、经济且可靠地将分布在海外各地的应用与基础设施日志统一采集至阿里云日志服务 (SLS) 进行分析与监控,已成为关键挑战。 本文聚焦于阿里云高性能日志采集…...

体育培训的实验室管理痛点 质检LIMS如何重构体育检测价值链
在竞技体育与全民健身并行的时代背景下,体育培训机构正面临双重挑战:既要通过科学训练提升学员竞技水平,又需严格把控运动安全风险。作为实验室数字化管理的核心工具,质检LIMS系统凭借其标准化流程管控与智能化数据分析能力&#…...
第二节:Vben Admin 最新 v5.0 对接后端登录接口(上)
文章目录 前言一、登录页面调整二、登录表单调整三、后端接口(Python)对接对接准备1. Flask项目介绍2. User模型创建3. 迁移模型4. Token创建5. 编写蓝图6. 注册蓝图四、测试登录总结前言 这里是Vben Admin V5版本实战体验,上一节我们前端已正常运行,但是没有实现登录。本节…...

设计模式【cpp实现版本】
文章目录 设计模式1.单例模式代码设计1.饿汉式单例模式2.懒汉式单例模式 2.简单工厂和工厂方法1.简单工厂2.工厂方法 3.抽象工厂模式4.代理模式5.装饰器模式6.适配器模式7.观察者模式 设计模式 1.单例模式代码设计 为什么需要单例模式,在我们的项目设计中&…...

阿维塔汽车CAN总线数据适配技术解析与免破线数据采集实践
在智能电动汽车快速迭代的背景下,阿维塔凭借其高度集成的电子电气架构成为行业焦点。昨天我们经过实测,适配了该车型CAN总线数据适配的核心技术,从硬件接口定位、无损伤接线方案到关键动力系统数据解码进行系统性剖析,为智能诊断、…...

用纯HTML和CSS仿写知乎登录页面
这是知乎的官方的登录页面 这是我的登录页面,使用 HTML CSS 进行编写。我觉得这是一个供前端新手练手的一个不错的小项目, 在这个系列,我将会用 HTML CSS 编写各大知名网站的登录界面,欢迎大家交流探讨。 源码展示: body{ba…...
数据库故障排查全攻略:从实战案例到体系化解决方案
一、引言:数据库故障为何是技术人必须攻克的 "心腹大患" 在数字化时代,数据库作为企业核心数据资产的载体,其稳定性直接决定业务连续性。据 Gartner 统计,企业每小时数据库 downtime 平均损失高达 56 万美元࿰…...
MySQL如何优雅的执行DDL
一、概述 在MySQL中,DDL(数据定义语言)语句用于定义和管理数据库结构,包括创建、修改和删除数据库对象(如表、索引等)。执行DDL操作时,需要谨慎处理,以避免对生产环境的稳定性和性能…...
Django异步任务处理方式总结
在 Django 中实现异步任务处理是优化性能和用户体验的关键。以下是几种常见的异步任务处理方式及详细说明: 1. Celery(最主流方案) 适用场景:需要可靠、分布式、复杂任务队列的项目(如定时任务、重试机制、多节点部署…...
类加载机制详解:双亲委派模型与打破它的方式
在复杂的 Java 系统中,类加载是最基础却常被忽略的一环。理解 JVM 的类加载机制,特别是 双亲委派模型(Parent Delegation Model),是我们深入掌握热部署、插件机制、ClassLoader 隔离、ClassNotFound 错误等问题的关键。…...

【Redis】C++如何使用redis
文章目录 1. redis客户端2. 使用通用命令3. 使用string命令3. 使用list命令4. 使用set命令5. 使用hash命令6. 使用zset命令 1. redis客户端 在前面的学习种,我们都是使用redis命令行客户端手动执行操作的;但是更多的时候,需要使用redis的api…...
2025年现代职业教育质量提升计划(植保无人机实训室)解决方案
一、项目背景 1.1 现代职业教育发展趋势 现代职业教育正朝着多元化、技术化、智能化方向发展,以满足社会对高素质技术技能人才的迫切需求。随着科技的飞速进步,职业教育课程体系不断优化,实训教学环节的重要性愈发凸显。据教育部统计&#…...

考研系列-408真题计算机组成原理篇(2010-2014)
写在前面 此文章是本人在备考过程中408真题计算机组成原理部分(2010年-2014年)的易错题及相应的知识点整理,后期复习也常常用到,对于知识提炼归纳理解起到了很大的作用,分享出来希望帮助到大家~ # 2010年 1.DRAM芯片的排列和编址方式 这个区别于多体交叉编址:这个可以理…...
【BUG】‘DetDataSample‘ object has no attribute ‘_gt_sem_seg‘
问题: 使用mmdetection框架使用COCO格式训练自定义数据集时,其中模型使用HTC模型时出现如下问题: AttributeError: ‘DetDataSample’ object has no attribute ‘_gt_sem_seg’. Did you mean: ‘gt_sem_seg’? results self(**data, mode…...

47.电压跌落与瞬时中断干扰的防护改善措施
电压跌落与瞬时中断干扰的防护改善措施 1. 电压跌落与瞬时中断的影响机理2. 解决措施 1. 电压跌落与瞬时中断的影响机理 跌落发生的常见场景如下: (1)电源插头接触不良,瞬态中断即刻恢复; (2)电…...

极狐Gitlab 里程碑功能介绍
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 里程碑 (BASIC ALL) 极狐GitLab 中的里程碑是一种跟踪议题和合并请求的方法,这些请求是为了在特定时间段内实现更…...

一次Android Fragment内存泄露的bug解决记录|Fragment not attach to an Activity
Bug描述 前些天出现了一个 bug。Activity 页面里放了一个 ViewPager2,其中的每一页是一个 Fragment。其中第一页的 Fragment 实现了一个监听器,当事件发生和首次添加到监听器管理者 listener manager 时,manager 会通知所有监听者࿰…...
基于深度学习的交通标志识别系统
基于深度学习的交通标志识别系统 项目简介 本项目实现了一个基于深度学习的交通标志识别系统,使用卷积神经网络(CNN)对交通标志图像进行分类识别。系统包含数据预处理、模型训练与评估、结果可视化和用户交互界面等模块。 数据集 项目使用德国交通标志识别基准数…...

LVGL图像导入和解码
LVGL版本:8.1 概述 在LVGL中,可以导入多种不同类型的图像: 经转换器生成的C语言数组,适用于页面中不常改变的固定图像。存储系统中的外部图像,比较灵活,可以通过插卡或从网络中获取,但需要配置…...
Vite Proxy配置详解:从入门到实战应用
Vite Proxy配置详解:从入门到实战应用 一、什么是Proxy代理? Proxy(代理)是开发中常用的解决跨域问题的方案。Vite内置了基于http-proxy的代理功能,可以轻松配置API请求转发。 二、基础配置 在vite.config.js中配置…...
oracle goldengate非并行进程转换为并行进程
oracle goldengate非并行进程转换为并行进程 在上一期的文章中写道了直接创建并行进程的方式对大事务进行分解,这对于新建立同步进程的时候提前规划是很有帮助的,但是如果对已经进行了同步的进程重新建立需要耗时比较长,Oracle提供了非并行进…...
VBA将PDF文档内容逐行写入Excel
VBA是无法直接读取PDF文档的,但结合上期我给大家介绍了PDF转换工具xpdf-tools-4.05,先利用它将PDF文档转换为TXT文档,然后再将TXT的内容写入Excel,这样就间接实现了将PDF文档的内容导入Excel的操作。下面的代码将向大家演示如何实…...

project从入门到精通(五)
目录 创建资源的基本信息 在project中创建资源工作表 编辑信息详解 最大单位 标准费率与加班费率 每次使用成本 成本累算 基准日历 三类资源工作表的总结——不同的资源必须要设置的属性 除了资源名称是必须设置的之外,剩余的资源的可设置选项如下图所…...

第3.2.3节 Android动态调用链路的获取
3.2.3 Android App动态调用链路 在Android应用中,动态调用链路指的是应用在运行时的调用路径。这通常涉及到方法调用的顺序和调用关系,特别是在应用的复杂逻辑中,理解这些调用链路对于调试和性能优化非常重要。 1,动态调用链路获…...