实验15:ADCprintf输出.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验15 ADC 实验 本章我们将向大家介绍 STM32 的 ADC 功能。在本章中,我们将利用 STM32 的 ADC1 通道 1 来采样外部电压值,并将采集到的电压数据通过printf 打印输 出在串口助手上。 本章分为以下学习目标: 1. 掌握 STM32 的内部 ADC 的操作方式 1.1 STM32 内部 ADC 的简介 STM32 拥有 1~3 个 ADC (STM32F101/102 系列只有 1 个 ADC),这些 ADC 可以独立 使用,也可以使用双重模式(提高采样率)。 STM32 的 ADC 是 12 位逐次逼近型的模拟数 字转换器。它有 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可 以单次、连续、扫描或间断模式执行。 ADC 的结果可以左对齐或右对齐方式存储在 16 位 数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀 值。 STM32F103 系列最少都拥有 2 个 ADC,我们选择的 STM32F103ZET 包含有 3 个 ADC。 STM32 的 ADC 最大的转换速率为 1Mhz,也就是转换时间为 1us (在ADCCLK=14M,采样周期 为 1.5 个 ADC 时钟下得到),不要让 ADC 的时钟超过 14M,否则将导致结果准确度下降。 STM32 将 ADC 的转换分为 2 个通道组:规则通道组和注入通道组。规则通道相当于你正常 运行的程序,而注入通道呢,就相当于中断。在你程序正常执行的时候,中断是可以打断你 的执行的。同这个类似,注入通道的转换可以打断规则通道的转换, 在注入通道被转换完 成之后,规则通道才得以继续转换。 通过一个形象的例子可以说明:假如你在家里的院子内放了 5 个温度探头,室内放了 3 个温度探头; 你需要时刻监视室外温度即可,但偶尔你想看看室内的温度;因此你可以 使用规则通道组循环扫描室外的 5 个探头并显示 AD 转换结果,当你想看室内温度时,通 过一个按钮启动注入转换组(3 个室内探头)并暂时显示室内温度,当你放开这个按钮后,系 统又会回到规则通道组继续检测室外温度。从系统设计上,测量并显示室内温度的过程中断 了测量并显示室外温度的过程,但程序设计上可以在初始化阶段分别设置好不同的转换组, 系统运行中不必再变更循环转换的配置,从而达到两个任务互不干扰和快速切换的结果。可 以设想一下,如果没有规则组和注入组的划分,当你按下按钮后,需要从新配置 AD 循环扫 描的通道,然后在释放按钮后需再次配置 AD 循环扫描的通道。 上面的例子因为速度较慢,不能完全体现这样区分(规则通道组和注入通道组)的好处, 但在工业应用领域中有很多检测和监视探头需要较快地处理,这样对 AD 转换的分组将简化 事件处理的程序并提高事件处理的速度。 STM32 其 ADC 的规则通道组最多包含 16 个转换,而注入通道组最多包含 4 个通道。 关于这两个通道组的详细介绍,请参考《 STM32 参考手册的》第 155 页,第 11 章。STM32 的 ADC 可以进行很多种不同的转换模式,这些模式在《 STM32 参考手册》的第 11 章也都 有详细介绍,我们这里就不在一一列举了。我们本章仅介绍如何使用规则通道的单次转换模 式。 STM32 的 ADC 在单次转换模式下,只执行一次转换,该模式可以通过 ADC_CR2 寄存器 的 ADON 位(只适用于规则通道)启动,也可以通过外部触发启动(适用于规则通道和注入 通道),这是 CONT 位为 0。以规则通道为例,一旦所选择的通道转换完成,转换结果将被 存在 ADC_DR 寄存器中,EOC (转换结束)标志将被置位,如果设置了 EOCIE,则会产生中 断。然后 ADC 将停止,直到下次启动。 接下来,我们介绍一下我们执行规则通道的单次转换,需要用到的 ADC 寄存器。第一 个要介绍的是 ADC 控制寄存器( ADC_CR1 和 ADC_CR2)。 ADC_CR1 的各位描述如图所示: 这里我们不再详细介绍每个位,详细的说明及介绍,请参考《 STM32 参考手册》第 11 章 的相关章节。 接下来我们来 看一下它的框图: 从图上分析,我们发现当我们使用 GPIO 作为外部的 ADC 输入的时候,首 先要经过 一个模拟多路开关,然后选择进入哪个通道,一个是规则通道一个是注 入通道。而什么是 规则通道什么是

文档评论(0)

最新文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档