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);
  1. 选定通道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.读入数据

代码如下(示例):

---# 总结

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

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

相关文章

手把手教你如何实现List——ArrayList

目录 前言: 线性表 顺序表 接口的实现 一. 打印顺序表 二.新增元素,默认在数组最后新增 三.在 pos 位置新增元素 四.判定是否包含某个元素 五. 查找某个元素对应的位置 六.获取 pos 位置的元素 七.给 pos 位置的元素设为 value 八.删除第一次出现的关键字k…

基于SSM的酒店预订管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

Matlab R2022b 安装成功小记

Matlab R2022b 安装成功小记 前言一、 下载链接二、 安装过程小记 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧! 前言 windows 10系统之前安装过Matlab R2010b做基础研究,最…

Anaconda离线下载torch与安装包

一、下载离线安装包 命令: pip download 安装包名 -d 安装到文件夹名 -i https://pypi.tuna.tsinghua.edu.cn/simple执行这样的命令就会把安装包的离线文件下载到指定文件夹中。 操作: 打开cmd命令行,并进入相应的目录中。 如果是tor…

k8s中pod的hostport端口突然无法访问故障处理

故障背景: 租户告知生产环境的sftp突然无法访问了,登录环境查看sftp服务运行都是正常的,访问sftp的hostport端口确实不通。 故障处理过程 既然访问不通那就先给服务做个全面检查,看看哪里出了问题,看下sftp日志&#…

Docker基本操作---镜像与容器操作

Docker基本操作---镜像与容器操作 1. 操作镜像1.1 查看镜像1.2 删除镜像1.2.1 删除镜像1.2.2 强制删除镜像1.2.3 删除所有镜像 1.3 启动镜像1.4 常见错误1.4.1 image is being used by stopped container e3b9df6dc6ae 2 操作容器2.1 新建启动容器2.2 查看正在运行的容器2.3 退…

Unity学习笔记11

一、视频播放功能 1.如何让视频在游戏场景中播放? 在Assets目录下添加一个渲染器纹理,步骤:新建→渲染器纹理 首先在创建一个平面,想让视频在平面上显示。在平面上添加一个组件 Video Player 然后将视频文件拖拽到视频剪辑位置上…

黄金比例设计软件Goldie App mac中文版介绍

Goldie App mac是一款测量可视化黄金比例的工具。专门为设计师打造,可以帮助他们在Mac上测量和可视化黄金比例,从而轻松创建出完美、平衡的设计。 Goldie App mac体积小巧,可以驻留在系统的菜单栏之上,随时提供给用户调用。 拥有独…

如何控制Spring工厂创建对象的次数?详解Spring对象的声明周期!

😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783…

Dijkstra算法(贪心),Floyd-Warshall算法(动态规划), Bellman-Ford算法——用Python实现

图论中最短路径三剑客 前言一、Dijkstra算法(贪心)1.1 Dijkstra在生活中的应用举例1.2 设计思路1.3 算法应用实例1.3.1 以交通规划为例1.3.2 Dijkstra算法执行步骤1.3.3 python代码 1.4 时空复杂度 二、Floyd-Warshall算法(动态规划&#xff…

fiddler设置过滤你就这样做,一做一个不只声!

fiddler设置过滤 基本的过滤操作流程以百度为例 步骤: 1、右侧高级工具栏点击Filters》勾选Use Filters》选择Show only Internet Hosts和Show only the following Hosts》在文本框中输入host地址 2、点击Changes not yet saved》再点击Actions》Run Filterset …

如何获取高质量的静态住宅IP代理?常见误区与注意事项

静态住宅IP代理在今天的网络营销领域扮演着至关重要的角色,静态住宅IP代理以其稳定性和高匿名性,为互联网业务提供了一个安全的执行环境。通过模拟真实用户的网络行为,这些IP代理降低了企业在网络营销活动中被识别和封禁的风险。它保护了企业…

echarts修改tooltip默认的圆点图标为其他样式

业务需求,默认是圆点,需要把线的由圆点改为线 红色线是理论,点是历史理论,绿色线是实际, 点是历史实际,在series里的顺序也是这样排的。 打印出来的params里的marker就是圆点,改这段代码就可以了…

使用STM32 HAL库驱动光电传感器的设计和优化

光电传感器在许多应用中起着重要的作用,例如自动计数、距离测量等。STM32微控制器和HAL库提供了丰富的功能和易于使用的接口,使得光电传感器的设计和优化变得更加便捷。本文将介绍如何使用STM32 HAL库驱动光电传感器的设计和优化,包括硬件设计…

OpenCV | 傅里叶变换——低通滤波器与高通滤波器

import cv2 #opencv 读取的格式是BGR import numpy as np import matplotlib.pyplot as plt #Matplotlib是RGB %matplotlib inline def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows() 傅里叶变换 傅里叶变换的作用 高频:变化剧烈…

JAVA文件IO, File类, 字符流,字节流

文章目录 文件IO1. File2. IO流2.1 字符流2.1.1 Reader2.1.2 Writer 2.2 字节流2.2.1 InputStream2.2.2 FileInputStream2.2.3 利用Scanner进行字符读取2.2.4 OutputStream 文件IO I: Input, 从硬盘往内存读数据 O: Output, 从内存往硬盘输出数据 1. File Java 中通过 java…

解析d3dcompiler_47.dll缺失怎么修复,4种方法修复d3dcompiler_47.dll文件

d3dcompiler_47.dll缺失怎么修复?其实在我们使用计算机操作的过程中,有时会遇到一些由dll文件错误导致的问题,其中d3dcompiler_47.dll丢失就是这样一种。那么究竟d3dcompiler_47.dll缺失是什么意思,为何它会发生丢失,以…

PWM占空比原理是什么,几个实例带你进一步了解

PWM : 即脉冲宽度调制(Pulse Width Modulation) 脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换及嵌入式领域的许多领域中。 PWM控制技术以其控制简单,灵活和动态响应好的优点而…

【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏4(附项目源码)

文章目录 本节最终效果前言命中敌人闪白和击退效果敌人死亡效果等级 击杀数 经验绘制经验条显示等级和杀敌数游戏倒计时玩家血条参考源码完结 本节最终效果 前言 本节紧跟着上一篇,主要实现敌人受击死亡效果特效,主角等级、击杀数、经验、血条UI显示。 …

手写promise A+、catch、finally、all、allsettled、any、race

目录 手写promise 同步版 1.Promise的构造方法接收一个executor(),在new Promise()时就立刻执行executor回调 2.executor()内部的异步任务被放入宏/微任务队列,等待执行 3.状态与结果的管理 状态只能变更一次 4.then()调用成功/失败回调 catch是…