当前位置: 首页 > news >正文

day11 ADC

1.1ADC的概述

ADC:模数转换----模拟量转换成数字量

模拟量:是指一段连续的值

数字量:是指一段离散的值

ADC会将检测到的一段连续的数值,转换为一些离散的数字量,在STM32中,ADC主要转换的对象就是IO接收到的电压。

1.2ADC外设的概述

12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。

12位:ADC的分辨率(描述的数的准确性)

逐次逼近型ADC

若想要计算一个物品的重量,已知当前最大的砝码重量为100g 后面依次为 50g 20g 10g 5g 1g

从重量最多的砝码依次与物品比对,若比物品轻则增加砝码,否则更换砝码

ADC:若选择8bit分辨率

数据的左对齐与右对齐:数据寄存器有16位,而分辨率最高12位,则保存数据时可以选择保存在数据寄存器的右侧或左侧(高位或低位)

1.3ADC框图

由框图可知,转换某个数据源的模拟量数据其步骤大致为

  1. 选择转换通道
  2. 为ADC提供转换频率
  3. 配置ADC的相关参数(转换周期、转换间隔、模式选择等)
  4. 产生一次开始转换信号
  5. 等待EOC置位
  6. 从数据寄存器中读取数据

2 DHT11使用

2.1温湿度模块的特点

查看DHT11数据手册:知DHT11使用单线制串行接口,4针排针引脚,供电电压3-5.5v

2.2温湿度模块的原理

通信协议
◦ 启动信号:主机拉低总线至少 18ms,随后释放并等待传感器响应(拉低 40–80μs)。
◦ 数据传输:每次传输 40 位数据(湿度整数(8位)/小数(8位) + 温度整数(8位)/小数(8位) + 校验和(8位)),高位先发MSB。
数据格式示例
◦ 湿度:45.0%RH → 字节4(整数) + 字节3(小数)
◦ 温度:28.0℃ → 字节2(整数) + 字节1(小数)
◦ 校验和:湿度 + 温度(校验最后 8 位)。

2.3初始化配置步骤

初始化配置输入  /  输出模式

因为使用单总线模式,所以既要输入也要输出;在开始信号和结束信号处需要信号输出。

①通信开始

void DHT_Start(void)
{
//设置输出模式
DHT11OUT_Init();
GPIO_SetBits(GPIOG,GPIO_Pin_9);//若电平是低电平,无法产生下降沿,所以先拉高
//把总线拉低,延时20ms等待
GPIO_ResetBits(GPIOG,GPIO_Pin_9);
Delay_ms(20);

//总线拉高
GPIO_SetBits(GPIOG,GPIO_Pin_9);
Delay_us(30);    
}

②通信过程

检测是否响应:

③通信结束

2.4通信信号

http://www.dtcms.com/a/287631.html

相关文章:

  • [spring6: AspectMetadata AspectInstanceFactory]-源码解析
  • 【Unity】YooAsset问题记录
  • 深度学习-线性神经网络
  • 剧本杀小程序开发:科技赋能,重塑推理娱乐新形态
  • 大模型军备竞赛升级!Grok 4 携 “多智能体内生化” 破局,重构 AI 算力与 Agent 2.0 时代
  • 1 渗透基础
  • FOC算法六步算法 以及 Vds保护是什么
  • 石子问题(区间dp)
  • 【c++】提升用户体验:问答系统的交互优化实践——关于我用AI编写了一个聊天机器人……(12)
  • QCC系列显示交互层的自研技术突破与实践
  • 论文reading学习记录4 - weekly - 视觉端到端开创-LOAM
  • 6 STM32单片机的智能家居安防系统设计(STM32代码+手机APP设计+PCB设计+Proteus仿真)
  • VRRP-虚拟路由冗余协议
  • leetcode3_435 and 605
  • 在服务器(ECS)部署 MySQL 操作流程
  • C++控制台贪吃蛇开发:从0到1绘制游戏世界
  • Linux --进程信号
  • 2025年燃气从业人员证考试题库及答案
  • Linux——文件压缩和解压
  • 结合python面向对象编程,阐述面向对象三大特征
  • volka 可理解性输入:做家务
  • 学习C++、QT---29(QT库中QT事件的介绍和用了几个案例来对事件怎么使用的讲解)
  • lvs原理及实战部署
  • Linux内核设计与实现 - 第5章 系统调用
  • CS231n-2017 Lecture3线性分类器笔记
  • 什么是 Git 的钩子 Hooks?包括哪些内容?
  • picoCTF 2024: [[NoSQL]] Injection - Writeup
  • K8s与Helm实战:从入门到精通
  • 【杂谈】硬件工程师怎么用好AI工具做失效分析
  • 图像缩放的双线性插值算法