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_SQR1L)的设置值,是规矩通道序列转化总数数-1,DMA设置则是规矩序列转化总数
注入通道序列长度(ADC_JSQRJL)的设置值,是注入通道序列转化总数数-1。