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

蓝桥杯嵌入式ADC与DAC(都不需要中断)

目录

1.原理图

(1)ADC的原理图

(2)DAC的原理图

2.STM32CubeMX的配置

(1)ADC的配置

(2)DAC配置

3.代码部分

(1)ADC代码

(2)DAC代码

1.原理图

(1)ADC的原理图

作用:将模拟信号转换为数字信号

转换的方法:逐次逼近型,将片内模拟量和一个数字量对应的模拟量比较,得到最接近的值

蓝桥杯嵌入式板子上有两个12位的ADC转换器,每一个ADC具有19个多路复用通道,结果存储在16位寄存器中 (因此16位多4位存在左对齐还是右对齐,DAC也是)

个人理解是STM32G431RBT6这个芯片可以处理这个信号,将它转换?(希望有人能告诉我这个转换是从哪里完成的,谢谢!)

(2)DAC的原理图 

作用:将数字信号转换成模拟信号

转换的方法:电流型DAC

蓝桥杯嵌入式板子的DAC模块是12位电压输出模数转换器,可配置为8或12位,两路输出通道

2.STM32CubeMX的配置

(1)ADC的配置

转换周期越短,精度越低,转换时间越长精度愈高

ADC转换时间计算公式为(转换周期+12.5(精度+0.5))*时钟周期

(2)DAC配置

连接到外部的引脚,不要连接到内部

3.代码部分

(1)ADC代码

关键函数:

HAL_ADC_Start(ADC_HandTypeDef *hadc)//开始转换
HAL_ADC_PollForConversion(ADC_HandTypedef *hadc,uint8_t Timeout)//等待完成
HAL_ADC_GetValue(ADC_HandTypedef *hadc)//获得转换结果
HAL_ADC_Stop(ADC_HandTypedef *hadc)//停止转换

代码的作用是获取当前值,按照需要再展示 

int R37=0,R38=0;
void get_adcvalue(void)
{HAL_ADC_Start(&hadc1);HAL_ADC_PollForConversion(&hadc1,10);R38 = HAL_ADC_GetValue(&hadc1);HAL_ADC_Stop(&hadc1);HAL_ADC_Start(&hadc2);HAL_ADC_PollForConversion(&hadc2,10);R37 = HAL_ADC_GetValue(&hadc2);HAL_ADC_Stop(&hadc2);
}

(2)DAC代码

关键函数

HAL_DAC_Start(DAC_HandTypeDef *hdac,uint8_t Channel)//开始通道转换,指定通道
HAL_DAC_SetValue(DAC_HandTypeDef *hdac,uint32_t Channel,uint32_t Alignment,uint32_t Dta)
HAL_DAC_Stop(DAC_HandTypeDef *hdac,uint32_t Channel)//停止转换

关键函数代码 

void set_dacvalue(float value1,float value2)
{int temp1 = (value1/3.3)*4096;HAL_DAC_SetValue(&hdac1,DAC_CHANNEL_1,DAC_ALIGN_12B_R,temp1);int temp2 = (value2/3.3)*4096;HAL_DAC_SetValue(&hdac1,DAC_CHANNEL_2,DAC_ALIGN_12B_R,temp2);
}

相关文章:

蓝桥杯嵌入式ADC与DAC(都不需要中断)

目录 1.原理图 (1)ADC的原理图 (2)DAC的原理图 2.STM32CubeMX的配置 (1)ADC的配置 (2)DAC配置 3.代码部分 (1)ADC代码 (2)DA…...

网络视频的防盗与破解

网络视频(Web 视频)是指利用 HTML5 技术在浏览器中播放的视频,这类视频资源通常可以被随意下载,某些行业(比如教培行业)如果希望保护自己的视频资源不被下载,就需要对视频做防盗链处理。 防盗链需要着重加强两个方面的安全性:网络传输和客户端。 网络传输安全 网络传…...

FPGA 20个例程篇:20.USB2.0/RS232/LAN控制并行DAC输出任意频率正弦波、梯形波、三角波、方波(二)

通过上面的介绍相信大家对数字变频已经有了一个较为整体性的认识,下面笔者来对照XILINX的DDS IP核对数字变频技术展开更进一步的说明,做到了理论和实践很好地结合,这样大家再带入Modelsim进行仿真测试就不仅掌握了数字变频的理论知识&#xf…...

接口中新增方法,接口应用和适配器设计模式

目录 JDK8以后接口中新增方法 接口中默认方法注意事项: 新增方法static 接口中静态方法的注意事项: JDK9新增的方法 JDK8以后接口中新增方法 允许在接口中定义默认的方法,需要使用关键字default修饰作用:解决接口升级的问题 …...

自主HttpServer实现(C++实战项目)

文章目录项目介绍CGI技术概念原理设计框架日志文件TCPServer任务类初始化与启动HttpServerHTTP请求结构HTTP响应结构线程回调EndPoint类EndPoint主体框架读取HTTP请求处理HTTP请求CGI处理非CGI处理构建HTTP响应发送HTTP响应接入线程池简单测试项目扩展项目介绍 该项目是一个基…...

第26篇:Java数组API总结

目录 1、数组基本概念 2、Java如何声明数组 2.1中括号在数据类型之前 2.2 中括号在数据类型之后...

[C++] 信号

前言 信号与槽是QT的一个概念&#xff0c;原版C里并没有 使用 先声明一些类 Receiver负责接收信号&#xff0c;Emitter2则是负责发送 class Receiver : public ntl::Reflectible { public:void received(int num){std::cout << "received:" << num &…...

单片机——矩阵按键模块

主要目的 学会按键扫描 1.延时函数 延时函数部分详见链接: 单片机控制一盏灯的亮与灭程序解释 void delay (uint k) //定义延时函数{uint i,j;for(i<0;i<k;i){for(j0;j<113;j){;}}}这个程序里面的延时函数的目的是按键消抖。 2.按键扫描模块 这是本次实验的重点&a…...

Android学习之网络操作

网络操作 Android平台下的原生网络操作可以分为以下几步&#xff1a; 创建URL对象&#xff1b;通过URL对象获取HttpURLConnection对象&#xff1b;通过HttpURLConnection对象设置请求头键值对、网络连接超时时间等&#xff1b;通过HttpURLConnection对象的connect()方法建立网…...

Delphi XE开发android开发环境搭建

Delphi xe为使用Delphi作为开发工具的程序员,提供了开发APP的便捷工具,它的开发环境也是非常容易搭建,这里我简述一下Android的开发环境搭建,Delphi XE开发Android程序的开发环境需要三个软件支持:Java SE Development开发环境、Android SDK和Android Ndk开发环境。 1、安…...

flink入门-流处理

入门需要掌握&#xff1a;从入门demo理解、flink 系统架构&#xff08;看几个关键组件&#xff09;、安装、使用flink的命令跑jar包flink的webUI 界面的监控、常见错误、调优 一、入门demo&#xff1a;统计单词个数 0、单词txt 文本内容(words.txt)&#xff1a; hello world …...

【数据结构】单链表中,如何实现 将链表中所有结点的链接方向“原地”逆转

一.实现一个单链表&#xff08;无头单向不循环&#xff09; 我们首先实现一个无头单向不循环单链表。 写出基本的增删查改功能&#xff0c;以及其它的一些功能&#xff08;可忽略&#xff09;。 #include<stdio.h> #include<assert.h> #include<stdlib.h>…...

摘花生(简单DP)

Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图)&#xff0c;从西北角进去&#xff0c;东南角出来。地里每个道路的交叉点上都有种着一株花生苗&#xff0c;上面有若干颗花生&#xff0c;经过一株花生苗就能摘走该它上面所有的花生。Hel…...

2022济南大学acm新生赛题解

通过答题情况的难度系数&#xff1a; 签到&#xff1a;A 简单&#xff1a;BL 中等&#xff1a;D 困难&#xff1a;CM 极难&#xff1a;KNO A-和 算出n个数的和判断正负性即可&#xff01;&#xff01;&#xff01; 发现很多同学的代码错误&#xff1a;要么sum未赋初值&…...

策略模式教程

策略模式是一种行为型设计模式&#xff0c;它允许在运行时根据不同的情况选择不同的算法实现&#xff0c;从而使得算法可以独立于客户端而变化。本文将介绍策略模式的概念、应用场景、优点和缺点&#xff0c;并提供最佳的代码实践。本文的代码实现将使用Java语言&#xff0c;但…...

什么是刺猬理念

一、什么是刺猬理念刺猬理念是指把复杂的世界简化成单个有组织性的观点&#xff0c;一条基本原则或一个基本理念&#xff0c;发挥统帅和指导作用。核心是把事情简单化&#xff0c;把所有的挑战和进退维谷的局面压缩为简单的。二、刺猬理念的寓言故事狐狸是一种狡猾的动物&#…...

RPC通信相关

RPCRPC, 远程过程调用&#xff08;Remote Procedure Call&#xff0c;RPC&#xff09;是一个计算机通信协议&#xff0c;该协议允许运行于一台计算机的程序程调用另一台计算机的上的程序。通俗讲&#xff0c;RPC通过把网络通讯抽象为远程的过程调用&#xff0c;调用远程的过程就…...

Node.js + MongoDB 搭建博客 -- 登录页面

准备工作 安装Node.js安装express等相关库MongoDB数据库电脑系统&#xff1a;win11 功能分析 搭建一个简单的具有多人注册、登录、发表文章以及登出功能的博客。 设计目标 未登录&#xff1a;主页左侧导航栏显示home、login、register&#xff0c;右侧显示已发表的文章、发…...

互联网新理念,对于WEB 3.0 你怎么看?

WEB 3.0 这个名词走进大众视野已经有一段时间了&#xff0c;也曾在各个圈子里火热一时&#xff0c;至今各大互联网企业任旧在 WEB 3.0 上不断探索。但关于 WEB 3.0 是什么这个问题&#xff0c;其实大部分人都没有一个比较明确的认知&#xff0c;包括区块链和元宇宙等相关行业的…...

Git使用教程:最详细、最傻瓜、最浅显、真正手把手教

GITGIT版本控制版本控制的意义分布式图形化客户端环境搭建仓库的操作分支使用场景命令远程仓库操作生成公钥命令冲突忽略列表的配置时机配置方式版本回退练习&#xff1a;GIT 版本控制 把文件系统中的文件&#xff0c;按照修改的版本进行记录&#xff0c;进行管理的操作。 版…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

基于鸿蒙(HarmonyOS5)的打车小程序

1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

【WebSocket】SpringBoot项目中使用WebSocket

1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖&#xff0c;添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践&#xff0c;很多人以为AI已经强大到不需要程序员了&#xff0c;其实不是&#xff0c;AI更加需要程序员&#xff0c;普通人…...

高保真组件库:开关

一:制作关状态 拖入一个矩形作为关闭的底色:44 x 22,填充灰色CCCCCC,圆角23,边框宽度0,文本为”关“,右对齐,边距2,2,6,2,文本颜色白色FFFFFF。 拖拽一个椭圆,尺寸18 x 18,边框为0。3. 全选转为动态面板状态1命名为”关“。 二:制作开状态 复制关状态并命名为”开…...

标注工具核心架构分析——主窗口的图像显示

&#x1f3d7;️ 标注工具核心架构分析 &#x1f4cb; 系统概述 主要有两个核心类&#xff0c;采用经典的 Scene-View 架构模式&#xff1a; &#x1f3af; 核心类结构 1. AnnotationScene (QGraphicsScene子类) 主要负责标注场景的管理和交互 &#x1f527; 关键函数&…...

【笔记】结合 Conda任意创建和配置不同 Python 版本的双轨隔离的 Poetry 虚拟环境

如何结合 Conda 任意创建和配置不同 Python 版本的双轨隔离的Poetry 虚拟环境&#xff1f; 在 Python 开发中&#xff0c;为不同项目配置独立且适配的虚拟环境至关重要。结合 Conda 和 Poetry 工具&#xff0c;能高效创建不同 Python 版本的 Poetry 虚拟环境&#xff0c;接下来…...

基于微信小程序的作业管理系统源码数据库文档

作业管理系统 摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和微信小程序来完成对系统的…...

Java编程之组合模式

引言 在软件开发的世界里&#xff0c;我们经常会遇到需要表示"部分-整体"层次结构的场景。比如文件系统中的文件和文件夹、图形界面中的各种组件、企业组织架构中的部门和员工等。这些场景都有一个共同的特点&#xff1a;我们需要以一种统一的方式来处理单个对象和由…...