STM32 ADC转换器、串口输出
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、ADC是什么?
- 二、STM32的ADC
- 2.1 认识STM32 ADC
- 2.2转换方式
- 2.3 为什么要校准?
- 2.4 采样时间计算
- 2.5 触发方式
- 2.6 多通道采集解决方案
- 2.7 提高ADC采样时间的方法
- 三、如何使用STM32的ADC
- 3.1. 使用哪个ADC
- 3.2. 电压基准
- 3. 3使用什么通道
- 3.4. 用什么规则
- 3.5. 时钟来源,配置最大吗?14Mhz
- 3.6. 如何触发,软件还是硬件
- 3.7.是否中断 ,读取数据
- 四、编程步骤
- 4.1大概步骤
- 4.1.1 开时钟
- 4.1.2 配置gpio
- 4.1.3 初始化ADC_init()
- 4.1.4 开启转换
- 4.1.5 等待转换完成
- 4.1.6 读取转换数据
- 4.1.7 串口输出显示电压,模拟电压和数字电压
- 4.2 具体举例:
- 五、测试
- 1.引入库
- 2.读入数据
前言
提示:这里可以添加本文要记录的大概内容:
在工程应用中,除了对数字信号进行处理,常常还要处理模拟信号,这个时候就要用到模拟转换器,也就是模拟信号转换成数字信号的器件。
比如,设置一个比较器,电压低于1v,就输出3.3v,电压高于1v,就输出0v。这个就是我们常见到的一位模数转换器
什么是比较器
快速上手双电压比较器LM393,并制作巡线小车和传感器模块无需单片机【IC原来如此】
https://www.bilibili.com/video/BV1q54y1Z7uU/?spm_id_from=333.337.search-card.all.click
提示:以下是本篇文章正文内容,下面案例可供参考
一、ADC是什么?
ADC 是 Analog-to-Digital Converter 的缩写,意思是模/数转换器或者模数转换器。它是将连续变化的模拟信号转换为离散的数位讯号的器件。这种转换器可以将真实世界的模拟信号,如温度、压力、声音或者图像等,转换成更容易储存、处理和发射的数字形式。
将引用B站大神的作品进行介绍
ADC——模数转换器的基础知识和几个常见类型
https://www.bilibili.com/video/BV1rL411U77J/?spm_id_from=333.337.search-card.all.click
模数转换框图









二、STM32的ADC
STM32中的ADC是12位逐次逼近型ADC,最快转换速度大约1us。
2.1 认识STM32 ADC







2.2转换方式



2.3 为什么要校准?

2.4 采样时间计算

2.5 触发方式

2.6 多通道采集解决方案

2.7 提高ADC采样时间的方法

三、如何使用STM32的ADC
3.1. 使用哪个ADC
3.2. 电压基准
3. 3使用什么通道
3.4. 用什么规则
3.5. 时钟来源,配置最大吗?14Mhz
3.6. 如何触发,软件还是硬件
3.7.是否中断 ,读取数据
四、编程步骤
4.1大概步骤
4.1.1 开时钟
4.1.2 配置gpio
4.1.3 初始化ADC_init()
4.1.4 开启转换
4.1.5 等待转换完成
4.1.6 读取转换数据
4.1.7 串口输出显示电压,模拟电压和数字电压
4.2 具体举例:
1.选用ADC1,
2.则时钟

//1.开启时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
- 选定通道0


引脚配置模式

通道和引脚对应关系

//1.开启时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_GPIOA,ENABLE);//2.配置引脚 PA0为模拟输入GPIO_InitStruct.GPIO_Pin= GPIO_Pin_0; //TXGPIO_InitStruct.GPIO_Speed= GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOA, &GPIO_InitStruct); //&x
3.初始化adc
ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);


ADC_InitStruct.ADC_ContinuousConvMode= DISABLE;ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStruct.ADC_ExternalTrigConv= ADC_ExternalTrigConv_None;ADC_InitStruct.ADC_Mode= ADC_Mode_Independent;ADC_InitStruct.ADC_NbrOfChannel= 1;ADC_InitStruct.ADC_ScanConvMode= DISABLE;ADC_Init(ADC1, &ADC_InitStruct);
4.开启转换
ADC_Cmd(ADC1, ENABLE);
5.等待转换完成
五、测试
1.引入库
代码如下(示例):
2.读入数据
代码如下(示例):
---# 总结相关文章:
STM32 ADC转换器、串口输出
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、ADC是什么?二、STM32的ADC2.1 认识STM32 ADC2.2转换方式2.3 为什么要校准?2.4 采样时间计算2.5 触发方式2.6 多通道采集解决方案2.7…...
[MySQL--基础]函数、约束
hello! 这里是欧_aita的频道。 今日语录:不管你觉得自己能做什么,或者你觉得你不能做什么,你都是对的。 祝福语:愿你的程序像太阳一样明亮,给世界带来温暖和光明。 大家可以在评论区畅所欲言,可以指出我的错误…...
企业数字化决策者深度分享
2023年11月18日,数聚股份应邀参加在台州椒江举办的数字中国企业峰会。本次会议中,诸多在企业数字化进程中做出重要贡献的高层管理者分享了各行各业极具引领性、创新性的数字化实践案例、产品和解决方案;数聚股份董事长陈庆华携其前瞻的数字化…...
JMeter压测常见面试问题
1、JMeter可以模拟哪些类型的负载? JMeter可以模拟各种类型的负载,包括但不限于Web应用程序、API、数据库、FTP、SMTP、JMS、SOAP / RESTful Web服务等。这使得JMeter成为一个功能强大且灵活的压力测试工具。 2、如何配置JMeter来进行分布式压力测试&a…...
使用opencv将sRGB格式的图片转换为DCI-P3格式【sRGB】【DCI-P3】
要将图像从 sRGB 格式转换为 DCI-P3 格式,您需要使用适当的线性转换矩阵。在 OpenCV 中,这通常涉及使用色彩转换函数,但 OpenCV 默认情况下不直接支持 sRGB 到 DCI-P3 的转换。因此,您需要手动计算并应用转换矩阵。 转换矩阵取决…...
【协议设计与实现】Linux环境下,如何从0开始设计并实现一个网络协议之一——需要考虑的因素
🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd🌐系列专栏:TCP/IP协议&…...
【前端】JS实现SQL格式化
sqlFormatter sql-formatter - npm (npmjs.com) const sqlFormatter require(/utils/sqlFormatter)let sql select count(1) as cnt from t_user where id < 7;// 格式化 // let sqlF sqlFormatter.format(sql);let sqlF sqlFormatter.format(sql, {language:mysql,})…...
java设计模式学习之【工厂模式】
文章目录 引言工厂方法模式简介定义与用途:实现方式: 使用场景优势与劣势工厂模式在spring中的应用电费计算示例(简单工厂模式)改善为方法工厂模式代码地址 引言 在软件开发的世界中,对象的创建可能是一个复杂且重复的…...
android 内存分析(待续)
/proc/meminfo memory状态解读 命令:adb shell cat /proc/meminfo内存分布log 查看方式 命令:adb shell cat /proc/meminfo 用途:可以整体的了解memory使用情况 我们说的可用memory一般以MemAvailable的数据为准。所以了解MemAvailable的组成可以帮助…...
2023-简单点-机器学习中的数值计算问题
上溢和下溢: 上溢:指数函数或对数函数的输入值过大,导致计算结果超出了计算机可以表示的最大值。例如,在softmax函数中,当输入的数值很大时,指数运算的结果可能非常大,导致上溢。 下溢&#x…...
Qt5的事件处理函数有哪些?
2023年11月29日,周三上午 通过查看QWidget的定义可知,事件处理函数有: bool event(QEvent *event) override;virtual void mousePressEvent(QMouseEvent *event);virtual void mouseReleaseEvent(QMouseEvent *event);virtual void mouseDou…...
Jmeter性能综合实战——签到及批量签到
提取性能测试的三个方面:核心、高频、基础功能 签 到 请 求 步 骤 1、准备工作: 签到线程组 n HTTP请求默认值 n HTTP cookie 管理器 n 首页访问请求 n 登录请求 n 查看结果树 n 调试取样器 l HTTP代理服务器 (1)创建线…...
04 # 第一个 TypeScript 程序
初始化项目以及安装依赖 新建 ts_in_action 文件夾 npm init -y安装好 typescript,就可以执行下面命令查看帮助信息 npm i typescript -g tsc -h创建配置文件,执行下面命令就会生成一个 tsconfig.json 文件 tsc --init使用 tsc 编译一个 js 文件 新…...
Android gradle 配置阿里镜像
要在Android Gradle中配置阿里镜像,可以按照以下步骤进行操作: 打开项目中的 build.gradle 文件。 在 build.gradle 文件中添加阿里镜像的地址,如下所示: buildscript {repositories {maven { url https://maven.aliyun.com/re…...
Arduino驱动DHT20温湿度传感器(温湿度传感器)
目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序 DHT20温湿度传感器是DHT11的全新升级版。 DHT20采用全新的ASIC专用芯片、改进的MEMS半导体电容式湿度传感器元件和标准片上温度元件。所有传感器均经过工厂校准,具有低功耗、高精度和稳定性、响应…...
如何使用ArcGIS Pro制作一张北极俯视地图
地图的表现形式有很多种,经常我们看到的地图是以大西洋为中心的地图,还有以太平洋为中心的地图,今天要给大家介绍的地图是从北极上方俯视看的地图,这里给大家讲解一下制作方法,希望能对你有所帮助。 修改坐标系 制作…...
每天五分钟计算机视觉:经典架构的力量与启示
在深度学习和计算机视觉领域,卷积神经网络(Convolutional Neural Networks,简称CNN)无疑是最为经典的架构之一。近年来,随着研究的不断深入和新架构的不断涌现,许多初学者可能会忽视这些经典架构的重要性。然而,理解并学习这些经典架构,对于我们深入理解卷积神经网络的…...
element plus 使用细节
菜鸟一直在纠结这个写不写,因为不难,但是菜鸟老是容易忘记,虽然想想或者搜搜就可以马上写出来,但是感觉每次那样就太麻烦了,不如一股做气写了算了,后面遇见别的就再来补充! 文章目录 table 表格…...
分析:为什么有些pdf打开之后无法编辑?
pdf文件大家应该都经常接触,但是不知道大家会遇到这种情况:有些PDF文件打开之后无法编辑?是什么原因呢?今天我们来分析一下都是那些原因导致的。 首先我们可以考虑一下,PDF文件中的内容是否是图片,如果确认…...
Django请求生命周期流程
浏览器发起请求。 先经过网关接口,Django自带的是wsgiref,请求来的时候解析封装,响应走的时候打包处理,这个wsgiref模块本身能够支持的并发量很少,最多1000左右,上线之后会换成uwsgi,并且还会加…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
