STM32 | ADC+RS485(第十天)

news2025/1/25 4:40:27

点击上方"蓝字"关注我们

01、ADC概述

ADC, Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号.例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模/数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。

模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。

数字信号指自变量是离散的、因变量也是离散的信号,这种信号的自变量用整数表示,因变量用有限数字中的一个数字来表示。在计算机中,数字信号的大小常用有限位的二进制数表示。

ADC转换步骤

1、采样:在时间轴上对信号数字化。也就是,按照固定的时间间隔抽取模拟信号的值,这样,采样后就可以使一个时间连续的信息波变为在时间上取值数目有限的离散信号。

2、量化:在幅度轴上对信号数字化。也就是,用有限个幅度值近似还原原来连续变化的幅度值,把模拟信号的连续幅度变为有限数量的有一定间隔的离散值。

3、编码:用二进制数表示每个采样的量化值(十进制数)。

02、ADC

STM32F407ZET6有3个ADC,每个ADC有12位、10位、8位和6位可选,每个ADC有16个外部通道。另外还有两个内部ADC源和VBAT通道挂在ADC1上。ADC具有独立模式、双重模式和三重模式,对于不同AD转换要求几乎都有合适的模式可选。ADC功能非常强大,具体的我们在功能框图中分析每个部分的功能。

ADC框架

规则通道

规则通道:顾名思意,规则通道就是很规矩的意思,我们平时一般使用的就是这个通道,或者应该说我们用到的都是这个通道,没有什么特别要注意的可讲。

注入通道

注入,可以理解为插入,插队的意思,是一种不安分的通道。它是一种在规则通道转换的时候强行插入要转换的一种。如果在规则通道转换过程中,有注入通道插队,那么就要先转换完注入通道,等注入通道转换完成后,再回到规则通道的转换流程。这点跟中断程序很像,都是不安分的主。所以,注入通道只有在规则通道存在时才会出现。

规则序列

规则序列寄存器有3个,分别为SQR3、SQR2、SQR1。SQR3控制着规则序列中的第一个到第六个转换,对应的位为:SQ1[4:0]~SQ6[4:0],第一次转换的是位4:0 SQ1[4:0],如果通道16想第一次转换,那么在SQ1[4:0]写16即可。SQR2控制着规则序列中的第7到第12个转换,对应的位为:SQ7[4:0]~SQ12[4:0],如果通道1想第8个转换,则SQ8[4:0]写1即可。SQR1控制着规则序列中的第13到第16个转换,对应位为:SQ13[4:0]~SQ16[4:0],如果通道6想第10个转换,则SQ10[4:0]写6即可。具体使用多少个通道,由SQR1的位L[3:0]决定,最多16个通道。

03、ADC采集步骤过程

ADC采集需要添加的库函数文件:stm32f4xx_adc.c

(1)理解电路原理图

可调电阻连接在PA5

ADC12_IN5

(2)、开启PA口时钟和ADC1时钟,设置PA5为模拟输入。

RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);  GPIO_Init();  

3)、初始化ADC_CCR寄存器。

ADC_CommonInit();

(4)、初始化ADC1参数,设置ADC1的工作模式以及规则序列的相关信息。

void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);

(5)、使能ADC。

ADC_Cmd(ADC1, ENABLE);

(6)、配置规则通道参数:

ADC_RegularChannelConfig();

(7)、开启软件转换:ADC_SoftwareStartConv(ADC1);

(8)、等待转换完成,读取ADC值。

ADC_GetConversionValue(ADC1);

04、RS485

1、RS485概述

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

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

相关文章

【公考新手教程】公考新手小白备考规划

公考 公考相关考试国考省考 行测常识判断言语理解与表达数量关系判断推理(重中之重)图推定义判断类比逻辑判断 资料分析(重中之重) 申论(很重要,提升困难)公基推荐考公软件粉笔华图在线bilibili…

零基础开始学习鸿蒙开发-文章推荐栏获取接口数据并展示

目录 1.新建文章列表布局页面,通过静态数据,编写好布局页面。 1.1 通过行ArticleCard布局构建单个文章展示的item项 1.2 使用了ObjectLink装饰器(尽管这不是ArkUI标准API的一部分,特定框架或自定义的扩展)&#xff0c…

在自定义数据集上训练现有的Detectron2模型

这段内容介绍了将使用一个气球分割数据集(仅包含一个类别:气球)来训练一个气球分割模型。训练过程将以一个预训练在COCO数据集上的模型为基础,这些模型可以在Detectron2的模型库中获取。需要注意的是,COCO数据集本身并…

神仙公司名单(苏州)

神仙公司(苏州) 前几天虽辟谣了 苏州佳能 N12/2N12 的裁员赔偿,但也同时指出了苏州是外企偏多,就业环境和生活节奏平衡的好城市。 但提到苏州公司,大家第一印象是微软、思科 和 Zoom 此类以 WLB 闻名的明星企业。 确实…

阿里「轨迹可控版Sora」,告别「抽卡」,让视频生成更符合物理规律

目前,扩散模型能够生成多样化且高质量的图像或视频。此前,视频扩散模型采用 U-Net 架构 ,主要侧重于合成有限时长(通常约为两秒)的视频,并且分辨率和纵横比受到固定限制。 Sora 的出现打破了这一限制&#…

【教学类-73-01】20240804镂空瓶子01

背景需求: 瓶子里的春天呀! - 小红书 (xiaohongshu.com)https://www.xiaohongshu.com/explore/63ef87f8000000000703acae?app_platformandroid&ignoreEngagetrue&app_version8.47.0&share_from_user_hiddentrue&xsec_sourceapp_share&…

谷粒商城实战笔记-vagrant避坑指南

文章目录 一,虚拟机磁盘空间不足问题原因解决方案 二,虚拟机导致C盘空间不足 一,虚拟机磁盘空间不足 使用vagrant管理虚拟机的过程中遇到了一个问题,虚拟机安装完成后,很快磁盘dev/sda1就满了,40G的空间&a…

链表篇: 04-寻找两个链表的第一个公共结点

解题思路: 方案一:长度统计法 从题目中可以看到,两个链表有长度差,这里可以先让长度比较长的链表先把长度差走完,这里假设为 pHead1, 先让 pHead1 把长度差走完,之后让两个链表同时往后进行遍历&#xff…

01:【stm32】软件安装及stm32的简要介绍

软件安装及stm32的简要介绍 1、软件安装1.1、安装Keil5 MDK软件1.2、安装DFP1.3、安装ARMCC编译器1.4、安装ST-Link驱动1.5、程序下载 2、stm32的介绍 1、软件安装 1.1、安装Keil5 MDK软件 ①先在D盘新建一个名为Keil5的文件夹。然后在Keil5文件夹里面新建2个文件夹&#xff0…

Vue从入门到精通全网最强保姆级教程

Vue是什么?为什么要学习他 Vue是什么? Vue是前端优秀框架, 是一套用于构建用户界面的渐进式框架 为什么要学习Vue 1 Vue是目前前端最火的框架之一 2 Vue是目前企业技术栈中要求的知识点 3 Vue可以提升开发体验 4 Vue学习难度较低 5 ..…

使用GCC编译Notepad++的插件

Notepad的本体1是支持使用MSVC和GCC编译的2,但是Notepad插件的官方文档3里却只给出了MSVC的编译指南4。 网上也没有找到相关的讨论,所以我尝试在 Windows 上使用 MinGW,基于 GCC-8.1.0 的 posix-sjlj 线程版本5,研究一下怎么编译…

【Kubernetes】Deployment 的创建和使用(实战)

Deployment 的创建和使用 创建 deployment-demo.yaml 文件,并在其中输入以下内容: apiVersion: apps/v1 kind: Deployment metadata:name: deployment-demolabels:app: nginx spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels…

Go语言加Vue3零基础入门全栈班15 gin+gorm+vue3用户管理系统实战录播课 2024年08月04日 课程笔记

预览 登录页面: 首页: 用户列表: 新增用户: 删除用户: 暗黑模式: 概述 如果您没有Golang的基础,应该学习如下前置课程。 01 Golang零基础入门课_20240726_149元02 Golang面向对象…

3.11.样式迁移

样式迁移 ​ 使用卷积神经网络,自动的将一个图像中的风格应用在另一图像之上,即样式迁移(style transfer) ​ 为了完成这一过程,我们需要两张输入图像:一张是内容图像,一张是风格图像,随后使用神经网络修…

【Nuxt】内置组件和全局样式使用

内置组件 Nuxt3框架也提供一些内置的组件,常用的如下: SEO组件:Html、Body、Head、Title、Meta、Style、Link、NoScript、BaseNuxtWelcome:欢迎页面组件,该组件是nuxt/ui的部分NuxtLayout:是Nuxt自带的页面布局组件NuxtPage:是N…

《Windows API每日一练》24.1 WinSock简介

本节将逐一介绍WinSock的主要特性和组件,套接字、WinSock动态库的使用。 本节必须掌握的知识点: Windows Socket接口简介 Windows Socket接口的使用 第178练:网络时间校验 24.1.1 Windows Socket接口简介 ■以下是WinSock的主要特性和组件…

Nginx代理(反向代理详解)

概述 正向代理: 正向代理通常用于客户端需要访问外部网络资源,但出于安全或策略考虑,客户端无法直接访问这些资源。正向代理服务器位于客户端和目标服务器之间,客户端通过代理服务器发送请求,代理服务器再将请求转发…

云原生应用程序简介

云原生应用程序简介 提示 该内容摘自电子书《为 Azure 构建云原生 .NET 应用程序》,可在**.NET Docs**上获取,也可以免费下载 PDF 并离线阅读。 另一天,在办公室研究“下一件大事”。 你的手机响了。这是友好的招聘人员打来的,他每…

备考2024年美国数学竞赛AMC10:吃透1250道历年真题和知识点(持续)

最近有家长问好真题网,有什么含金量比较高的初中生数学竞赛吗?美国数学竞赛AMC10是个不错的选择。根据近年的时间安排,距离2024年AMC10美国数学竞赛开赛预计还有2个多月的时间,实践证明,做真题,吃透真题和背…

[Python学习日记-2] Python的介绍与安装

[Python学习日记-2] Python的介绍与安装 Python的介绍和发展趋势 Python环境安装 开发你的第一个Python程序 Python的介绍和发展趋势 一、Python发展史 Python是一种高级编程语言,由Guido van Rossum(龟叔,荷兰人)于1989年圣诞…