关于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.mzph.cn/pingmian/54376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot+Vue+MySQL的手机销售管理系统

系统展示 用户前台界面 管理员后台界面 商家后台界面 系统背景 随着智能手机的普及和市场竞争的日益激烈,手机销售行业面临着前所未有的挑战与机遇。传统的手工记录和简单的电子表格管理方式已难以满足现代手机销售业务的需求,销售数据的混乱和管理效率低…

技术成神之路:设计模式(十四)享元模式

介绍 享元模式(Flyweight Pattern)是一种结构性设计模式,旨在通过共享对象来有效地支持大量细粒度的对象。 1.定义 享元模式通过将对象状态分为内部状态(可以共享)和外部状态(不可共享)&#xf…

C语言-文件操作-一些我想到的、见到的奇怪的问题

博客主页:【夜泉_ly】 本文专栏:【C语言】 欢迎点赞👍收藏⭐关注❤️ C语言-文件操作-一些我想到的、见到的奇怪的问题 前言1.在不关闭文件的情况下,连续多次调用 fopen() 打开同一个文件,会发生什么?1.1过…

Cursor火出圈,未来程序员还有出路吗?

大家好,我是凡人。 今天我表弟家邻居的阿姨,托他问问我目前程序员还有前景吗,希望我根据十几年的经验给出点建议,看看程序员这条路未来能不能走。 一下子不知道该怎么回复他了,如果是三年前问我,肯定毫不…

【React】React18.2.0核心源码解读

前言 本文使用 React18.2.0 的源码,如果想回退到某一版本执行git checkout tags/v18.2.0即可。如果打开源码发现js文件报ts类型错误请看本人另一篇文章:VsCode查看React源码全是类型报错如何解决。 阅读源码的过程: 下载源码 观察 package…

解决【WVP服务+ZLMediaKit媒体服务】加入海康摄像头后,能发现设备,播放/点播失败,提示推流超时!

环境介绍 每人搭建的环境不一样,情况不一样,但是原因都是下面几种: wvp配置不当网络端口未放开网络不通 我搭建的环境: WVP服务:windows下,用idea运行的源码 ZLM服务:虚拟机里 问题描述 1.…

【人工智能学习笔记】5 计算机视觉基础

计算机视觉概述 定义:计算机视觉(Computer Vision)是一门研究如何使机器“看”的科学,也可以看作是研究如何使人工系统从图像活多维数据中“感知”的科学终极目标:计算机视觉成为机器认知世界的基础,终极目…

superset 解决在 mac 电脑上发送 slack 通知的问题

参考文档: https://superset.apache.org/docs/configuration/alerts-reports/ 核心配置: FROM apache/superset:3.1.0USER rootRUN apt-get update && \apt-get install --no-install-recommends -y firefox-esrENV GECKODRIVER_VERSION0.29.0 RUN wget -q https://g…

【高级篇】ENC编码器如何挂载Windows共享目录进行录像

【高级篇】ENC编码器如何挂载Windows共享目录进行录像 Windows共享目录前提条件1、打开控制面板,点击 程序 菜单2、点击 启用或关闭Windows功能 菜单3、如下图,勾选SMB1.0/CIFS文件共享支持,并点击确认按钮,然后根据提示重启电脑 创建共享目录…

如何利用Samba跨平台分享Ubuntu文件夹

1.安装Samba 终端输入sudo apt install samba 2.配置Samba 终端输入sudo vim /etc/samba/smb.conf 打开配置文件 滑动文件到最底下 输入以下内容 [Share] # 要共享的文件夹路径 path /home/xxx/sambashare read only no browsable yes编辑完成后按一下Esc按键后输入:wq回…

ABAP-Swagger 一种公开 ABAP REST 服务的方法

ABAP-Swagger An approach to expose ABAP REST services 一种公开 ABAP REST 服务的方法 Usage 1: develop a class in ABAP with public methods 2: implement interface ZIF_SWAG_HANDLER, and register the public methods(example method zif_swag_handler~meta) 3: …

Docker 以外置数据库方式部署禅道

2.安装步骤 2.1.参考资料 禅道官网文档: https://www.zentao.net/book/zentaopms/docker-1111.html https://www.zentao.net/book/zentaopms/405.html 2.2.详细步骤 ssh 登录服务器创建目录 /opt/zentao /opt/zentao/data /opt/zentao/db cd /opt mkdir zentao mkdir zentao…

开源免费的NAS系统-TrueNAS CORE上创建CentOS7虚拟机

目录 文章目录 目录1、说明2、准备工作2.1、准备安装镜像2.1、创建用户2.2、开启 ssh 服务2.3、设置用户权限2.4、上传系统镜像2.5、 添加虚拟机 3、开始安装系统3.1、启动虚拟机3.2、选择语言3.3、配置网络3.4、设置 root 密码3.5、删除光驱3.6、重启虚拟机3.7、使用 ssh 连接…

C++ | Leetcode C++题解之第414题第三大的数

题目&#xff1a; 题解&#xff1a; class Solution { public:int thirdMax(vector<int> &nums) {int *a nullptr, *b nullptr, *c nullptr;for (int &num : nums) {if (a nullptr || num > *a) {c b;b a;a &num;} else if (*a > num &&am…

【Python】练习:控制语句(二)第4关

第4关&#xff1a;控制结构综合实训 第一题第二题&#xff08;※&#xff09;第三题&#xff08;※&#xff09;第四题&#xff08;※&#xff09;第五题&#xff08;※&#xff09;第六题&#xff08;※&#xff09; 第一题 #第一题def rankHurricane(velocity):#请在下面编写…

记录|C#的资源路径设置的资料整理

目录 前言一、在这里插入图片描述 https://bbs.csdn.net/topics/360001606 二、三、添加到资源文件中四、获得图片的三种路径方法五、给资源文件添加文件夹更新时间 前言 参考文章&#xff1a; 原本以为C# winform中进行图片等文件的路径的读取是直接可以按照资源文件中显示的来…

【ArcGIS微课1000例】0121:面状数据共享边的修改方法

文章目录 一、共享边概述二、快速的修改办法1. 整形共享边2. 修改边3. 概化边缘一、共享边概述 面状数据共享边指的是两个或多个面状数据(如多边形)共同拥有的边界。在地理信息系统(GIS)、三维建模、大数据分析等领域,面状数据共享边是描述面状空间数据拓扑关系的重要组成…

CORS漏洞及其防御措施:保护Web应用免受攻击

1. 背景- 什么是CORS&#xff1f; 在当今互联网时代&#xff0c;Web 应用程序的架构日益复杂。一个后端服务可能对应一个前端&#xff0c;也可能与多个前端进行交互。跨站资源共享&#xff08;CORS&#xff09;机制在这种复杂的架构中起着关键作用&#xff0c;但如果配置不当&…

Django学习实战篇五(适合略有基础的新手小白学习)(从0开发项目)

前言&#xff1a; 本章中&#xff0c;我们开始引入前端框架Bootstrap 来美化界面。在前面的章节中&#xff0c;我们通过编写后端代码来处理数据。数据之于网站&#xff0c;就相当于灵魂之于人类。而网站的前端就相当于人的形体外貌。其中HTML是骨架&#xff0c;而CSS是皮肤&…

Thymeleaf模版引擎

Thymeleaf是面向Web和独立环境的现代服务器端Java模版引擎&#xff0c;能够处理HTML、XML、JavaScript、CSS甚至纯文本。Thymeleaf旨在提供一个优雅的、高度可维护的创建模版的方式。为了实现这一目标&#xff0c;Thymeleaf建立在自然模版的概念上&#xff0c;将其逻辑注入到模…