STM32的每个ADC模块通过内部的模拟多路开关,可以切换到不同的输入通道并进行转换。STM32特别地加入了多种成组转换的模式,可以由程序设置好之后,对多个模拟通道自动地进行逐个地采样转换。
有2种划分转换组的方式:规则通道组和注入通道组。通常规则通道组中可以安排最多16个通道,而注入通道组可以安排最多4个通道。
在执行规则通道组扫描转换时,如有例外处理则可启用注入通道组的转换。
一个不太恰当的比喻是:规则通道组的转换好比是程序的正常执行,而注入通道组的转换则好比是程序正常执行之外的一个中断处理程序。
--------------------------------------------------------------------------------
再举一个不一定使用的例子:
假如你在家里的院子内放了5个温度探头,室内放了3个温度探头;你需要时刻监视室外温度即可,但偶尔你想看看室内的温度;因此你可以使用规则通道组循环扫描室外的5个探头并显示AD转换结果,当你想看室内温度时,通过一个按钮启动注入转换组(3个室内探头)并暂时显示室内温度,当你放开这个按钮后,系统又会回到规则通道组继续检测室外温度。
从系统设计上,测量并显示室内温度的过程中断了测量并显示室外温度的过程,但程序设计上可以在初始化阶段分别设置好不同的转换组,系统运行中不必再变更循环转换的配置,从而达到两个任务互不干扰和快速切换的结果。可以设想一下,如果没有规则组和注入组的划分,当你按下按钮后,需要从新配置AD循环扫描的通道,然后在施放按钮后需再次配置AD循环扫描的通道。
--------------------------------------------------------------------------------
上面的例子因为速度较慢,不能完全体现这样区分(规则组和注入组)的好处,但在工业应用领域中有很多检测和监视探头需要较快地处理,这样对AD转换的分组将简化事件处理的程序并提高事件处理的速度。
【转自】http://bbs.***.com/viewthread.php?tid=561&highlight=%E6%B3%A8%E5%85%A5%E7%BB%84
规则组由多达16个转换组成。规则通道和它们的转换顺序在ADC_SQRx寄存器中选择。规则组中转换的总数写入ADC_SQR1寄存器的L[3:0]位中。
注入组由多达4个转换组成。注入通道和它们的转换顺序在ADC_JSQR寄存器中选择。注入组里的转换总数目写入ADC_JSQR寄存器的L[1:0]位中。
如果规则转换已经在运行,为了在注入转换后确保同步,所有的ADC(主和从)的规则转换被停止,并在注入转换结束时同步恢复,见图示。
(原文件名:5d24120047e4ca496ccb1&690.jpg)
引用图片
规则转换和注入转换均有外部触发选项,规则通道转换期间有DMA请求产生,而注入转换则无DMA请求,需要用查询或中断的方式保存转换的数据。
还有一个需注意的是:
规则通道序列长度(ADC_SQR1 L)的设置值,是规则通道序列转换总数数-1,DMA 设置则是规则序列转换总数
注入通道序列长度(ADC_JSQR JL)的设置值,是注入通道序列转换总数数-1。
关键字:stm32 ADC 规则组 注入组
引用地址:
stm32的ADC之规则组和注入组
推荐阅读最新更新时间:2024-03-16 15:03
STM32_MDK_bxCAN
今天整理下CAN方面的资料,首先使用的是stm32f103vet6,只有一个CAN(2.0A & 2.0B)。CAN本身是工作的数据链路层的总线,有很多优势就不再一一介绍了,随便买本书看看都有。 基础的CAN的知识就不赘述了,这些是必要的可以自己去买书了解,现在来看下STM32下对CAN的驱动,STM32本身包括了CAN的数据链路层,然后物理层就是CAN收发器用的是TJA1050,是非容错CAN。终端电阻用120欧姆。 说道CAN最主要的是CAN的初始化,他包括两个主要的部分,一个是基本属性的声明,另一部分就是过滤器的设置。见如下代码: /*******************************************
[单片机]
STM32 Systick定时器
Q:什么是SYSTick定时器? SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。 Q:为什么要设置SysTick定时器? (1)产生操作系统的时钟节拍 SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。 (2)便于不同处理器之间程序移植。 Cortex‐M3处理器内部包
[单片机]
揭开Σ-ΔADC的神秘面纱
摘 要: 主要介绍Σ-ΔADC的工作原理及其典型应用。原理包括过采样和滤波,应用涉及热电偶测量及冷端补偿。
关键词: Σ-ΔADC 过采样 热电偶 4~20mA
越来越多的应用,例如过程控制、称重等,都需要高分辨率、高集成度和低价格的ADC。 新型Σ-Δ转换技术恰好可以满足这些要求。然而,很多设计者对于这种转换技术并不十分了解,因而更愿意选用传统的逐次比较ADC。Σ-Δ转换器中的模拟部分非常简单(类似于一个1bit ADC),而数字部分要复杂得多,按照功能可划分为数字滤波和抽取单元。由于更接近于一个数字器件,Σ-ΔADC的制造成本非
[应用]
意法半导体stm32系列芯片的省电原因
stm32所有寄存器都需要时钟才能配置,寄存器是由D触发器组成的,只有送来了时钟,触发器才能被改写值。 任何MCU的任何外设都需要有时钟,8051也是如此;STM32为了让用户更好地掌握功耗,对每个外设的时钟都设置了开关,让用户可以精确地控制,关闭不需要的设备,达到节省供电的目的。 51单片机不用配置IO时钟,只是因为默认使用同一个时钟,这样是方便,但是这样的话功耗就降低不了。 例如,某个功能不需要,但是它还是一直运行。 STM32需要配置时钟,就可以把不需要那些功能的功耗去掉。 当你想关闭某个IO的时候,关闭它想对应的时钟使能就是了,不过在51里面,在使用IO的时候是没有设置IO的时钟的,还有在STM32中,
[嵌入式]
基于STM32+FPGA的全彩LED显示屏系统的设计
LED显示屏是利用LED点阵模块或像素单元组成的一种现代平面显示屏幕,具有发光效率高、使用寿命长、视角范围大、色彩丰富以及对室内外环境适应能力强等优点。目前的LED显示屏控制系统多采用ARM处理器来完成整个系统的功能,这种控制系统在数据处理速度上存在很大的局限,影响显示效果的连续性。基于此,在分析了STM32微处理器总线结构特点的基础上,提出了STM32+FPGA的控制系统方案,该方案充分了利用STM32微处理器的灵活的储器控制技术和可编程逻辑器件的灵活性,提高了系统数据处理的速度,而且简化了电路结构,方便调试。 1、系统总体方案设计 系统结构框图如图1所示。 图1 系统结构框图 系统采用新一代的32bitRISC处理
[单片机]
STM32 USB设计--硬件篇
STM32芯片内部集成了USB外设,大大减轻了USB电路的设计负担,只需设计USB接口电路,就可以实现基于STM32芯片的电路板的USB通信设计。(本文将具体讲述基于STM32F103RBT6芯片的USB设计)本文为硬件篇。 首先,我们来认识一下STM32F103RBT6芯片。 其中USB相关引脚为PA11(D-),PA12(D+)引脚。就是通过这两个引脚实现STM32F103RBT6的USB通讯。 图1 STM32F103RBT6芯片引脚图 其次,我们简单来认识一下USB的构造(以A型公口、B型母口为例) 图2 USB A型公口 图3 USB B型母口 表1 USB接口引脚说明 1 VCC(+
[单片机]
STM32驱动DS1302
// 程序名: STM32驱动DS1302 //头文件 #include stm32f10x.h #include usart.h #define uchar unsigned char #define uint unsigned int ////DS1302引脚定义,可根据实际情况自行修改端口定义 #define RST PAout(5) #define IO PAout(6) #define SCK PAout(7) //DS1302地址定义 #define ds1302_sec_add 0x80 //秒数据地址 #define ds1302_min_add 0x82 //分数据地址 #define ds1302_hr_a
[单片机]
STM32低功耗时引脚配置
今天回答一位读者问的关于STM32低功耗问题。 1写在前面 有低功耗产品设计经验的朋友都应该知道,一个产品的功耗不光是硬件功耗的事,其实软件也是影响整个产品功耗的一个关键因素。 我之前也开发过几款使用电池供电的产品,调试起来,那叫一个痛苦,软件和硬件各种因素都要考虑。 当你确信软件没问题了,可能硬件某个地方又存在漏电流,这其中的“痛苦”我也不再这里描述了。 下面给出STM32低功耗时,其引脚的相关配置。 2 实现功耗优化的GPIO软件指南 1.将未使用的GPIO输入配置为模拟输入 GPIO始终有一个输入通道,可以是数字或模拟通道。 如果不需要读取GPIO数据,则优先配置为模拟输入。这节省了输入施密特触发
[单片机]