【微处理器系统原理和应用设计第十五讲】模拟/数字转换器

news2024/11/15 12:22:11

一、基础概念

1、概念

ADC将真实世界的例如温度、压力、声音或者图像等的模拟信号转换为更容易储存、处理和发射的数字形式。

2、分类

间接ADC:先将输入模拟电压转化为时间/频率等数字信号,例如双积分型ADC

直接ADC:直接转化为数字量,例如并联比较型,逐次逼近型ADC

3、ADC的处理

采样、保持、量化、编码

4、ADC的主要特点

ADC主要特点为采样率和位分辨率,采样率是ADC信号从模拟转换为数字的速度;位分辨率是ADC将信号从模拟转换为数字的精度。

5、DAC 模数转换器

一般使用DAC驱动电压,目前DAC主要用于波形生成领域

6、ADC的开关

通过在ADC_CR2寄存器上设置ADON位来上电,当第一次设置ADON时,它将ADC从power-down模式唤醒。

当设置SWSTART或者JSWSTART位开始转换

可以通过清除ADON位来停止转换并将ADC置于下电模式,这种模式下ADC几乎不消耗功率

7、温度传感器与VBAT内部共享连接在ADC1-IN18通道,一次只能选择一个转换器

8、ADC的常规应用的操作步骤

(1)使能ADC相关时钟

(2)指定ADC通道

(3)配置工作模式

(4)使能ADC

(5)进行模/数转换

二、功能需求

微处理器系统构成的测控设备通过USART串口与用户设备(上位机)相连。测控设备通过ADC1读取内置温度传感器,每隔1s获取一次芯片的内部温度,ADC1完成A/D转换,并将转换后的数字信号回传到上位机。

三、设计思路

管脚PA2和PA3分别为USART的TX和RX信号。ADC1选择内助温度通道,每隔1s软件触发一次单次转换,获取内部温度的数字信号后通过USART上传上位机。

四、代码实现

(1)ADC通道配置

配置ADC参数:ADC1转换通道采用内部温度传感器通道ADC_IN18,时钟源采用HCLK,利用软件触发,采用单次转换模式,转换精度为8bit,数据对齐方式为右对齐方式,

void AdcInit(void)
{
	RCC->APB2ENR|=1<<8; // 使能ADC1的时钟
	ADC->CCR|=(1<<23); // 使能内部温度传感器的参考电源
	ADC1->SMPR1|=0x7<<18; // 设置转换时间
	ADC1->SQR1&=~(0xF<<20); // 设置常规通道序列长度为1
	ADC1->SQR3=(ADC1->SQR3&~(0x1F))|18; // 设置常规通道0为ADC_IN18
	ADC1->CR1=(2<<24)|(1<<11); //设置常规转换为非连续模式,转换精度为8bit,通道数为1
	ADC1->CR2=1; //设置常规转换为单次模式,右对齐,非外部触发,使能ADC
}

(2)ADC启动函数

void AdcRun()
{
	ADC1->SR&=~2;
	ADC1->CR2|=1<<30; //开始A/D转换
	return;
}

(3)ADC数据获取函数

int AdcGet(unsigned char*pdat)
{
	if(!(ADC1->SR&2))
		return 0; // 未完成转换,返回失败
	*pdat=(unsigned char)ADC1->DR; // 转换完成,读取转换值
	return 1; //返回成功
	
}

 

 

 

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

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

相关文章

Pandas的读写数据

目录 读写文件的类型 Excel写 API 准备数据 1.直接写入(默认有索引和标题) 2.写入(去掉索引) 3.写入(去掉索引和标题) 4.写入(去掉索引和标题,指定表单信息) Excel读 API 1.读(默认带有索引和标题) 2.读(指定索引项) 3.读(碰到无标题列和无索引列,指定索引列,标题列…

C++速通LeetCode中等第7题-和为K的子数组(巧用前缀和)

巧用哈希表与前缀和&#xff0c;前缀和差为k的两个序号之间的数组就是满足条件的子数组&#xff0c;用哈希表来存放每个序号的前缀和。 前缀和就是头元素到当前序号子数组元素的和 class Solution { public:int subarraySum(vector<int>& nums, int k) {unordered_…

【软件测试】测试的岗位有哪些?

求职入口有很多&#xff1a;相关企业官网、求职软件、校招、公众号等等。 下面就在某招聘网站上看看测试有哪些岗位吧&#xff01; 测试只是一个统称&#xff0c;在测试下面还有很多细分岗位。 但是测试的岗位主要分为以下俩个方面&#xff1a; 软件测试开发工程师&#xff…

Linux(Centos7)系统下给已有分区进行扩容

本文详细介绍了&#xff0c;如何给Centos中已有分区进行扩容&#xff0c;简单的几条命令即可完成。 文章目录 1. 创建物理卷 (PV)2. 将新的物理卷添加到卷组 (VG)3. 扩展逻辑卷 (LV)4. 扩展文件系统4.1 查看文件系统类型4.2 扩展文件系统 完成 1、首先把vmware中的linux关机&am…

【Python】从基础到进阶(九):探索Python中的迭代器与生成器

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言二、迭代器1. 什么是迭代器&#xff1f;迭代器的工作流程&#xff1a; 2. 使用内置迭代器3. 自定义迭代器 三、生成器1. 什么是生成器&#xff1f;2. 创建生成器3. 生成器表达式 四、生成器与迭代器的区别五、生成器…

Python基础(六)——PyEcharts数据可视化初级版

案例 【前言&#xff1a;为了巩固之前的Python基础知识&#xff08;一&#xff09;到&#xff08;五&#xff09;&#xff0c;并为后续使用Python作为数据处理的好帮手&#xff0c;我们一起来看几个例子】 使用工具&#xff1a;Echarts Echarts 是一个由百度开源的数据可视化…

Node js介绍

目录 概要**对Node的认识****Node的概念理解****Node和浏览器区别****Node的架构图** **Node的应用场景****Node的安装****安装Node的LTS版本****Node的版本管理工具nvm(了解)** **Node的输入和输出**Node程序传递参数Node的输出 **Node的全局对象****特殊的全局对象****其他的…

C++类与对象深度解析(五):友元机制、内部类与匿名对象的高级应用

文章目录 C类和对象——全面指南前言4. 友元详解4.1 友元的基本概念 4.2 友元函数示例代码&#xff1a;友元函数访问两个类的私有成员输出&#xff1a; 4.3 友元类示例代码&#xff1a;友元类的使用输出&#xff1a; 4.4 友元的特性与限制4.5 友元函数与类的实际应用示例&#…

WAAP解决方案:守护数字时代的安全盾牌

在当今这个数字化、数据驱动的时代&#xff0c;网络安全已成为企业运营中不可或缺的一环。随着Web应用程序和API接口在业务中的广泛应用&#xff0c;其面临的安全威胁也日益复杂多变。为此&#xff0c;WAAP&#xff08;Web Application and API Protection&#xff09;解决方案…

JavaEE:网络编程(UDP)

文章目录 UDPUDP的特点UDP协议端格式校验和前置知识校验和具体是如何工作的? UDP UDP的特点 UDP传输的过程类似于寄信. 无连接: 知道对端的IP和端口号就直接进行传输,不需要建立连接.不可靠: 没有确认机制,没有重传机制,如果因为网络故障导致该段无法到达对方,UDP协议也不会…

字符函数 和 字符串函数 的使用与模拟

前言&#xff1a;在编程的过程中&#xff0c;我们经常要处理字符和字符串&#xff0c;为了⽅便操作字符和字符串&#xff0c;C语⾔标准库中提供了 ⼀系列库函数&#xff0c;接下来我们就学习⼀下这些函数。 目录 1. 字符函数 1.1 字符分类判断函数 1.2 字符转换函数 1.3 练…

Sui主网升级至V1.33.2

其他升级要点如下所示&#xff1a; #19404&#xff1a; 启用对等节点的共识轮次探测。 #19119&#xff1a; 无符号整数现在支持.to_string()方法&#xff0c;例如10u8.to_string()等同于 b”10".to_string()。 GraphQL #18774&#xff1a; 为GraphQL引入.move名称解…

Vue3.0组合式API:依赖注入provide和inject实现跨层组件的通信

1、Prop 逐级透传问题 通常情况下&#xff0c;当我们需要从父组件向子组件传递数据时&#xff0c;会使用 props。想象一下这样的结构&#xff1a;有一些多层级嵌套的组件&#xff0c;形成了一棵巨大的组件树&#xff0c;而某个深层的子组件需要一个较远的祖先组件中的部分数据…

数字源表测试IC芯片电性能方案

芯片测试作为芯片设计、生产、封装、测试流程中的重要步骤&#xff0c;是使用特定仪器&#xff0c;通过对待测器件DUT(DeviceUnderTest)的检测&#xff0c;区别缺陷、验证器件是否符合设计目标、分离器件好坏的过程。其中直流参数测试是检验芯片电性能的重要手段之一&#xff0…

JAVA国际版同城货运新纪元货拉拉货运车系统小程序源码

&#x1f69a;国际货运新风尚&#xff0c;同城搬家轻松享 —— 货拉拉货运车系统&#xff0c;全球互联新体验&#x1f30d; &#x1f310;【开篇&#xff1a;跨越国界的货运新篇章】&#x1f310; 在这个全球化的时代&#xff0c;无论是跨国企业还是个人需求&#xff0c;都渴…

Java通信协议——UDP通信协议,模拟聊天室(完整详解,附有代码)

UDP通信协议&#xff0c;模拟聊天室 需求说明 实现客户咨询问题&#xff0c;客服人员答复问题 分析 咨询时&#xff0c;客户是发送方&#xff0c;客服人员是接收方 答复时&#xff0c;客服人员是发送方&#xff0c;客户是接收方&#xff0c;实现思路和咨询时相同 当客户端输入 …

【5G QoS】详解5G QoS端到端工作机制

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G技术研究。 博客内容主要围绕…

大田上的路径跟踪论文汇总

文章目录 2022Path tracking control method and performance test based on agricultural machinery pose correction&#xff08;Computers and Electronics in Agriculture&#xff09;An optimal goal point determination algorithm for automatic navigation of agricult…

4款AI生成PPT工具推荐,提升工作效率

在如今的工作环境中&#xff0c;PPT制作是许多技术人员不可避免的任务&#xff0c;尤其是在汇报、展示技术方案、以及项目进展时。随着AI技术的快速发展&#xff0c;使用AI生成PPT成为了提高效率的一种新趋势。本文将介绍几款适合程序员、技术人员的AI生成PPT工具&#xff0c;帮…

如何用 HAproxy 实施高可用部署 | OceanBase 实践

背景介绍 最近&#xff0c;我们部署了Oceanbase数据库&#xff08;以下简称OB&#xff09;&#xff0c;并将部分业务迁移至OB中运行。在部署过程中&#xff0c;我们虽然配置了3个OBProxy&#xff0c;但没有为它们设置高可用配置&#xff0c;应用被固定到某一个OBProxy 上&…