STM32基础学习笔记-ADC面试基础题6

news2024/11/17 13:52:18

第六章、ADC

常见问题
1、基本概念:什么是ADC ?作用 ?逐次逼近型
2、传感器本质 ?传感器、电压、ADC数值转化 ?
3、ADC的特征 ? 转化时间、分辨率、精度、量化误差
4、ADC框图组成部分 ?参考电压/模拟部分电压、输入通道、转换序列、触发源、数据寄存器、转换时间、中断
5、转换模式_扫描模式 ?
## 1、ADC 模数转换器

作用:模拟数据->数字数据

整流:3.3V(模拟)->1(数字) 0V->0

而ADC内部也有一套转化规则:

3.3V->1024/8/512 0V->0

2、传感器

压力传感器、光敏传感器、温度传感器、湿度传感器、气压传感器等等

这些传感器内部实现原理:本质是滑动变阻器

将外部环境信息转换成电压信息(比如100N的力对应3.3V)

外部环境数据:100N 变成 模拟电压

ADC就是去继续量化这个模拟电压的,1024量化3.3V

ADC的特征:ADC的厂商定义四个核心的东西:分辨率(意味着ADC可以表示的范围:比如分辨率是3,0到2的3次方-1;分辨率是10就是0到2的10次方-1,分辨率最高的12,精度更大,分的更清楚)、精度、误差(制作的时候,工艺有区别,存在一个理论值与实际值的差别)、转化时间(要给一个充分的时间,要么确定ADC已经转化完成,要么给一个明确的完成信号)

ADC的内部构造:分为并联选择型和逐次逼近型 (电压->ADC值 )

3、实验

<font style="color:#4874CB;">1、轮询模式</font>

<font style="color:#4874CB;"> HAL_ADC_Start(&hadc1);  </font>

<font style="color:#4874CB;"> HAL_ADC_PollForConversion(&hadc1, 50);</font>

<font style="color:#4874CB;"> ADC_Value = HAL_ADC_GetValue(&hadc1);</font>

<font style="color:#4874CB;"> HAL_ADC_Stop(&hadc1);  </font>

2、 DMA模式

<font style="color:#4874CB;"> HAL_ADC_Start_DMA(&hadc1,(uint32_t *)ADC_Value,2);</font>

<font style="color:#4874CB;"> printf("%d    %d \r\n",ADC_Value[0],ADC_Value[1]);  </font>

<font style="color:#75BD42;">while循环中  采样周期要大一点  75.5Cycles )</font><font style="color:#4874CB;">  </font>

4、实验:单通道读取五向按键

这个五向按键有两个功能:判断是否按下,判断方向;

在五个按键上,接不同的电压,读取到不同的ADC的值,读的时候注意ADC的通道(通过原理图要找到五向按键和ADC的通道是哪个,必须要找到)

找到之后keil编程:第一步开启;第二步等待转化完成;第三步是获取ADC的值;第四步:停止 以上为轮询方式实现;

效果截图:

实验代码:

配置PA1为ADC1,然后设置一个USART1,实验代码:

中断方式实现:首先是ADC的中断开关;

然后找到对应的回调函数(跟着中断向量表中的ADC服务函数,每个服务函数里都有统一的ADC处理(在这个处理中肯定有callback回调函数,然后重写这个回调函数));接着获取ADC的值,处理完之后,把开关闭合上。

实验记录:

在轮询的前提下,加一个nvic:

硬件问题,如何用软件来区分五向按键向右按和不按(用PA8)


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

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

相关文章

华为云发布全栈可观测平台AOM,以AI赋能应用运维可观测

9月19日&#xff0c;华为全联接大会2024举办期间&#xff0c;在“AI赋能应用现代化&#xff0c;加速软件生产力跃升”为主题的论坛上&#xff0c;华为云发布全栈可观测平台AOM&#xff0c;以AI赋能应用运维可观测&#xff0c;提升企业应用可用性与稳定性。 该平台发布标志着华…

针对国产化--离线安装Nginx rpm包下载 ARM64(.aarch64.rpm) 版本下载

源地址&#xff1a;https://nginx.org/packages/centos/7/aarch64/RPMS/ 可以选择系统分别进行下载对应的rmp包

公安局软件管理平台建设方案和必要性,论文-2-———未来之窗行业应用跨平台架构

一、平台方略 随着gov信息化建设的不断推进&#xff0c;各类ZW软件的应用需求日益增加。为了提高ZW软件的获取便利性、AQ性和规范性&#xff0c;建设一个专门的GOV软件管理平台具有重要意义。 集中提供各类ZW软件&#xff0c;方便工作人员快速获取和安装&#xff0c;减少因软…

基于DAMODEL——Faster-RCNN 训练与测试指南

Faster-RCNN 训练与测试指南 前言 今天我们要来实现一个经典的目标检测模型&#xff1a;Faster-Rcnn。我们使用DAMODEL云平台来实现&#xff0c;这是个很强大的云端平台&#xff0c;功能众多&#xff0c;你可以投你所好去进行你想做的事情。 1. 环境与工具准备 1.1 远程连接…

经颅磁刺激技术,脑科学研究——精神患者治疗方案

经颅磁刺激&#xff08;Transcranial Magnetic Stimulation &#xff0c;TMS&#xff09;技术是一种利用脉冲磁场作用于中枢神经系统&#xff08;主要是大脑&#xff09;&#xff0c;改变皮层神经细胞的膜电位&#xff0c;使之产生感应电流&#xff0c;影响脑内代谢和神经电活动…

开放原子开源基金会OPENATOM

AtomGit_开放原子开源基金会代码托管平台-AtomGit 开放原子开源基金会是致力于推动全球开源事业发展的非营利机构&#xff0c;于 2020 年 6 月在北京成立&#xff0c;由阿里巴巴、百度、华为、浪潮、360、腾讯、招商银行等多家龙头科技企业联合发起。 精选项目&#xff1a; 比…

HDFS_API文件和文件夹

代码&#xff1a; Beforepublic void init() throws URISyntaxException, IOException {URI uri new URI("hdfs://master:9000");// 创建一个配置文件Configuration entries new Configuration();// 获取到了客户端对象 // entries.set("dfs.replicat…

【C++笔试强训】

​ 学习编程就得循环渐进&#xff0c;扎实基础&#xff0c;勿在浮沙筑高台 循环渐进Forward-CSDN博客 目录 循环渐进Forward-CSDN博客 第一题&#xff1a;除2&#xff01; 第二题&#xff1a;dd爱框框 第三题&#xff1a;简写单词 第一题&#xff1a;除2&#xff01; 牛客网…

Uniapp 打包后的横屏控制

文章目录 问题处理参考 问题 Uniapp 打包后的横竖屏跟开发模式不太一样&#xff0c;需要在代码里设置一下 处理 需要改两个地方 pages.json&#xff1a;在 globalStyle 中添加 "pageOrientation": "auto", manifest.json&#xff1a;在第一层后面添加…

每日学习一个数据结构-哈希表(散列表)

文章目录 示意图一、基本概念二、工作原理三、常用哈希函数四、冲突解决方法五、优缺点六、应用场景 哈希表&#xff08;Hash table&#xff09;&#xff0c;也被称为散列表&#xff0c;是一种基于哈希函数的数据结构&#xff0c;它通过把关键码值&#xff08;Key value&#x…

毛竹泛基因组-文献精读52

Haplotype-based pangenomes reveal genetic variations and climate adaptations in moso bamboo populations 基于单倍型的泛基因组揭示了毛竹种群中的遗传变异和气候适应性 摘要 毛竹&#xff08;Phyllostachys edulis&#xff09;是东亚地区一种在生态和经济上都具有重要…

二刷LeetCode:“51.N皇后 37.解数独”题解心得(简单易懂)

引言&#xff08;初遇噩梦&#xff0c;再遇坦然&#xff09; 在阅读本文之前&#xff0c;建议大家已经接触过回溯算法&#xff0c;并完成回溯相关题目&#xff0c;例如&#xff1a;子集问题、组合问题、排列问题。 子集&#xff1a;子集II、子集 组合&#xff1a;组合、组合总和…

[spring]用MyBatis XML操作数据库 其他查询操作 数据库连接池 mysql企业开发规范

文章目录 一. MyBatis XML配置文件1. 配置链接字符串和MyBatis2. 写持久层代码方法定义Interface方法实现xml测试 3. 增删改查增:删改查 二. 开发规范(mysql)三. 其他查询操作1. 多表查询2. #{} 和 ${}(面试题)使用区别 排序功能like查询 三. 数据库连接池 一. MyBatis XML配置…

【华为】用策略路由解决双出口运营商问题

需求描述 不同网段访问互联网资源时&#xff0c;走不同的出口&#xff0c;即PC1走电信出口&#xff0c;PC2走移动出口。 客户在内网接口下应用策略路由后往往出现无法访问内网管理地址的现象&#xff0c;该举例给出解决办法。 拓扑图 基础配置 #sysname R1 # # interface G…

【hot100-java】【下一个排列】

R8-技巧篇 最近速成java中&#xff0c;算法基础需要兼顾。 class Solution {public void nextPermutation(int[] nums) {int lennums.length;List<Integer>list new ArrayList<>();boolean flagtrue;for (int ilen-1;i>0;i--){list.add(nums[i]);Collections.…

若依生成主子表

一、准备工作 确保你已经部署了若依框架&#xff0c;并且熟悉基本的开发环境配置。同时&#xff0c;理解数据库表结构对于生成代码至关重要。 主子表代码结构如下&#xff08;字表中要有一个对应主表ID的字段作为外键&#xff0c;如下图的customer_id&#xff09; -- ------…

Pyinstaller打包python程序为exe时 程序多线程导致打开非常多窗口解决

装了个Pyinstaller打包exe pip install Pyinstaller 打包命令 Pyinstaller -F main.py Pyinstaller -F -w main.py #不带控制台 Pyinstaller -F -w -i 1.ico main.py #指定图标不带控制台 打包完的exe一运行开了一坨窗口&#xff0c;一眼多线程&#xff0c;我程序里的多线程如…

RtspServer:轻量级RTSP服务器和推流器

文章目录 项目概述技术分析支持的编码格式传输方式心跳检测机制RTSP 推流安全性 架构分析RtspServer 整体架构流程分析1. 客户端连接和会话建立2. 媒体数据传输3. 心跳检测和连接维护 xop 基础库项目介绍功能特性xop 整体架构 应用场景社区问题收集与解答问题一&#xff1a;刚开…

C++:deque的底层原理

一、deque是是双端队列。 deque(双端队列)&#xff1a;是一种双开口的"连续"空间的数据结构&#xff0c;双开口的含义是&#xff1a;可以在头尾两端进行插入和删除操作&#xff0c;且时间复杂度为O(1)&#xff0c;与vector比较&#xff0c;头插效率高&#xff0c;不…

Docker自定义构建镜像dockerfile和使用数据卷

Docker自定义构建镜像dockerfile和使用数据卷 DockerFile Dockerfile 是一个文本文件&#xff0c;包含了一系列用于构建 Docker 镜像 的指令和配置信息。通过编写 Dockerfile &#xff0c;用户可以定义镜像的构建过程&#xff0c;包括基础镜像、运行命令、设置环境变量、暴露…