关于STM32项目面试题02:ADC与DAC篇(输入部分NTC、AV:0-5V、AI:4-20mA和DAC的两个引脚)

博客的风格是:答案一定不能在问题的后面,要自己想、自己背;回答都是最精简、最精简、最精简,可能就几个字,你要自己自信的展开。

面试官01:什么是模数转换/ADC?说说模数转换的流程?

面试官02:你在项目中有没有使用到模数转换?

面试官03:详细说说你项目中模数转换的设计全过程。

01:模数转换是将模拟信号(连续信号)转换成数字信号(离散信号),这一过程使用到的模数转换器是一种电子设备接受模拟信号,可以是电压或者电流,通常是电压,然后转换成与信号幅度成比例的数字信号。

模数转换的流程:

(1)采样:在某一时刻采样模拟信号,将连续的模拟信号转换成离散的样本点。

(2)保持:保持采样点的电压/电流,使其在整个转换过程中保持稳定,为了避免信号变化带来的误差。

(3)量化:将模拟信号的值映射到一定比例的离散的数字值上。

(4)编码:将量化后的数字转换成二进制数,便于后续的数字处理和存储。

02:项目中一共有三个地方使用到了模数转换,分别是NTC模拟温度传感器电路、0-5V电压输入检测电路和4-20mA电流输入检测电路。

03:我想以NTC模拟温度传感器电路展开。

硬件电路的设计(脑海里要有硬件电路的原理图):以MUC的模拟电源VDDA为电源,经过电容滤波,选择的热敏电阻是SDNT2012X103FXXXXX(负温度系数),在25摄氏度下的阻值为10K,故串联一个10K/1%的分压电阻,两个电阻相互匹配,在中间节点引出经过电容滤波和RC滤波之后送到单片机具有ADC功能的引脚。

硬件测试:为了进行硬件测试,所以我对后续的过程也有一定的了解。制作表格。

在进行硬件测试之前先制作表格,查阅热敏电阻的数据手册,得到-30~70摄氏度每一度下的电阻最小值,中心值,最大值,如在-30度下电阻最小值,-30下电阻中间值,-30度下电阻最大值,表格做到70度。然后根据分压公式3.3*\frac{X}{X+10}将每一个值对应到实际设计的电路中,得到每一温度下对应的最小值、中心值、最大值。然后因为是用的单片机是12为ADC,再把刚刚得到的值对应到0~4096范围中取整,并组成数组,最后得到所有某一温度下的数组范围,如-25度是(3850,3867),-24是(3835~3850)。

编写软件代码,让单片机ADC引脚每隔1s采样数据,得到电压对应的二进制数,通过二分法查表匹配到对应的温度,将得到的温度显示在数码管上,并用串口助手每间隔1S打印一次温度信息。

注意虽然只说这一个模数转换的电路,但是你心里要对0-5V电压输入检测电路和4-20mA电流输入检测电路做到心中有数。其中电压检测就是把热敏电阻换成10K/1%的电阻分压后还是经过电容滤波、RC滤波。4~20mA电流检测就是直接引出经过150Ω(没有分压)还是电容滤波、RC滤波。

面试官04:什么是数模转换/DAC?说说数模转换的流程?

面试官05:你在项目中有没有使用到数模转换?

面试官06:详细说说你项目中数模转换的设计全过程。

04:数模转换是将数字信号(通常是二进制数)转换为模拟信号(如电压或电流)的过程。数模转换的流程是:

(1)输入数字信号:通常是由微控制器或者其他数字设备提供的二进制数,数字信号代表了需要转换的模拟量的离散级别。

(2)量化过程:根据输入的数字信号生成与之对应的模拟信号。

(3)电路生成模拟信号:DAC内部通过使用特定的电路来输出模拟信号。

(4)滤波与平滑:因为输出的是离散的模拟信号,因此还可能会通过低通滤波器进行滤波与平滑处理,使输出为一个更连续、平滑的模拟信号。

05:在项目使用到了数模转换,是使用一个具有DAC功能的引脚上电后输出正弦波,通过触摸按键1可以调整正弦波的频率。

06:在项目中使用的是一个复用引脚,是SPI通信的热电偶接口中的一个引脚(是一个只能由单片机向向接口引脚输出的引脚),硬件电路很简单,就是排针的接口。为了硬件测试,我对后续软件编写和简单的原理也有简单的了解。显示的正弦波是将一个周期中的正弦波分成32份来显示,故软件编写中先有数组存储了32个正弦波的采样点,代表一个完整周期的正弦波周期。将32个值通过DAC通道每隔X输出一个,其中X就是可以通过触摸按键1调整的值,这就可以通过按键1来调整正弦波的周期。

(上述涉及到的SPI通信,会在通信专栏中讲解。)

(热电偶的讲解如下:热电偶是一种用于测量温度的传感器。在使用时需要配合使用热电偶芯片,常见的热电偶芯片常采用SPI通信。)

面试官07:AD转换的精度由什么影响?

07:基准电压V_{REF+}V_{REF-},然后把我同门跟我讲的内部划分、对应二级制、逐个去找 讲一遍。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字自然资源领域的实现路径

在数字化浪潮的推动下,自然资源的管理与利用正经历着前所未有的变革。本文将从测绘地理信息与遥感专业的角度,深度分析数字自然资源领域的实现路径。 1. 基础数据的数字化 数字自然资源的构建,首先需要实现基础数据的数字化。这包括地形地貌…

【速成Redis】02 Redis 五大基本数据类型常用命令

前言: 上一节课,我们对redis进行了初步了解,和安装好了redis。【速成Redis】01 Redis简介及windows上如何安装redishttps://blog.csdn.net/weixin_71246590/article/details/142319358?spm1001.2014.3001.5501 该篇博客,我们正…

八股文-JVM

是什么?有什么用?谁发明的?什么时候发明的? Java虚拟机,用来运行Java程序,有很多个版本的虚拟机,比如HotSpot,最开始是SUN公司开发人员,和Java一起发布,现在…

9. 什么是 Beam Search?深入理解模型生成策略

是不是总感觉很熟悉?Beam Search 是生成任务中常用的一种方法。 在之前第5,7,8篇文章中,我们都曾经用到过与它相关的参数,而对于早就有着实操经验的同学们,想必见到的更多。这篇文章将从示例到数学原理和代…

【C语言二级考试】循环结构设计

C语言二级考试——循环结构程序设计 五.循环结构程序设计 1.for循环结构 2.while和do-while循环结构 3.continue语句和break语句 4.循环的嵌套 知识点参考【C语言】循环-CSDN博客 文章目录 1.for循环2.while和do-while循环结构3.continue语句和break语句4.循环的嵌套 1.for循环…

智谱清影 -CogVideoX-2b-部署与使用,带你揭秘生成6s视频的极致体验!

文章目录 1 效果展示2 CogVideoX 前世今生3 CogVideoX 部署实践流程3.1 创建丹摩实例3.2 配置环境和依赖3.3 模型与配置文件3.4 运行4 遇到问题 1 效果展示 A street artist, clad in a worn-out denim jacket and a colorful bandana, stands before a vast concrete wall in …

论文速递!时序预测!DCSDNet:双卷积季节性分解网络,应用于天然气消费预测过程

本期推文将介绍一种新的时序预测方法:双卷积季节性分解网络(Dual Convolution withSeasonal Decomposition Network, DCSDNet)在天然气消费预测的应用,这项研究发表于《Applied Energy》期刊。 针对天然气消费的多重季节性和非规律性&#x…

C++ —— 关于vector

目录 链接 1. vector的定义 2. vector的构造 3. vector 的遍历 4. vector 的扩容机制 5. vector 的空间接口 5.1 resize 接口 5.2 push_back 5.3 insert 5.4 erase 5.5 流插入与流提取 vector 并不支持流插入与流提取,但是可以自己设计,更…

标准库标头 <barrier>(C++20)学习

此头文件是线程支持库的一部分。 类模板 std::barrier 提供一种线程协调机制,阻塞已知大小的线程组直至该组中的所有线程到达该屏障。不同于 std::latch,屏障是可重用的:一旦到达的线程组被解除阻塞,即可重用同一屏障。与 std::l…

基于SpringBoot项目实现Docker容器化部署

将Spring Boot项目部署到Docker容器中的涉及几个主要步骤: 准备Docker镜像 首先,需要选择一个基础镜像,通常是包含Java运行时环境的镜像,例如OpenJDK。可以从Docker Hub或其他镜像仓库中获取这些镜像。接下来,需要在…

C++库文件移植到QT中一直出错

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

【软考】数据字典(DD)

目录 1. 说明2. 数据字典的内容2.1 说明2.2 数据流条目2.3 数据存储条目2.4 数据项条目2.5 基本加工条目 3. 数据词典管理4. 加工逻辑的描述4.1 说明4.2 结构化语言4.3 判定表4.3 判定树 5. 例题5.1 例题1 1. 说明 1.数据流图描述了系统的分解,但没有对图中各成分进…

一个基于 laravel 和 amis 开发的后台框架, 友好的组件使用体验,可轻松实现复杂页面(附源码)

前言 随着互联网应用的发展,后台管理系统的复杂度不断增加,对于开发者而言,既要系统的功能完备,又要追求开发效率的提升。然而,传统的开发方式往往会导致大量的重复劳动,尤其是在构建复杂的管理页面时。有…

【移动端开发】“明日头条APP”

文章目录 1 系统概述1.1研究背景1.2研究意义 2 系统设计2.1 关键技术2.2 系统设计2.2.1 系统功能模块2.2.2 数据库设计 3 系统实现3.1 数据模型3.1.1 NewsURL3.1.2 NewsType3.1.3 NewsInfo 3.2 数据库操作3.2.1 DBOpenHelper3.2.2 DBManager 3.3 适配器类3.3.1 AddItem3.3.2 In…

Redhat 7,8,9系(复刻系列) 一键部署Oracle19c rpm

Oracle19c前言 Oracle 19c 是甲骨文公司推出的一款企业级关系数据库管理系统,它带来了许多新的功能和改进,使得数据库管理更加高效、安全和可靠。以下是关于 Oracle 19c 的详细介绍: 主要新特性 多租户架构:支持多租户架构,允许多个独立的数据库实例在同一个物理服务器上…

【机器学习】9 ——最大熵模型的直观理解

机器学习9 ——最大熵模型的直观理解 文章目录 机器学习9 ——最大熵模型的直观理解前奏例子硬币垃圾邮件代码 前奏 【机器学习】6 ——最大熵模型 例子 硬币 假设我们有一枚硬币,可能是公平的,也可能是不公平的。我们的任务是估计硬币的正反面出现的…

通过Python代码发送量化交易信号邮件通知

量化交易利用数学模型和计算机算法来分析市场数据,并生成交易信号,本文将介绍如何使用Python编写一个简单的脚本,通过发送邮件通知量化交易信号。 开启SMTP服务 首先要在发件箱的邮件设置中,将POP3/SMPT服务开启,记录下授权密码,在本地可通过此密码登录,注意有效期和保…

微信小程序页面制作——婚礼邀请函(含代码)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

【网络】TCP/IP 五层网络模型:网络层

最核心的就是 IP 协议,是一个相当复杂的协议 TCP 详细展开讲解,是因为 TCP 确实在开发中非常关键,经常用到,IP 则不同,和普通程序猿联系比较浅。和专门开发网络的程序猿联系比较紧密(开发路由器&#xff0…

3款免费的GPT类工具

前言 随着科技的飞速发展,人工智能(AI)的崛起与发展已经成为我们生活中不可或缺的一部分。它的出现彻底改变了我们与世界互动的方式,并为各行各业带来了前所未有的便利。 一、Kimi 网址:点我前往 国产AI模型Kimi是一…