有关ADC的规则组注入组区别的形象解释

用您最熟悉的超市收银台来类比,保证一听就懂:

1. 排队规则(优先级)完全不同

  • 规则组(常规组) = 普通顾客 。老老实实排队,可以被插队。

  • 注入组 = VIP顾客 。拥有最高插队权。

关键区别 :当VIP顾客(注入组)突然到来时,收银员会让正在结账的普通顾客(规则组)立即暂停 ,先帮VIP结完账,再回头接着给普通顾客结。

(在STM32硬件中,注入转换确实可以打断正在进行的规则转换,这就是为什么您之前不用等规则组完成,直接触发注入就能读到正确值。)


2. 收银台(数据寄存器)数量不同

  • 规则组 :全超市只有 1个 收银出口(ADC_DR 寄存器)。如果有3个普通顾客(三相电流)排队,每结完一个就必须立刻把货搬走(用DMA),否则下一个人结账时会把旧数据覆盖掉。

  • 注入组 :有 4个 专属VIP出口(ADC_JDR1~4)。每个通道(如通道14、15)结账的金额各自存放在独立的抽屉里 ,互不干扰。所以您读 ADC_InjectedChannel_1 时,取的就是 JDR1 这个专用抽屉里的钱,不会跟其他通道搞混。


3. 叫号方式(触发源)不一样

  • 规则组 :通常由闹钟(定时器TIM2) 每隔固定时间(比如78微秒)自动叫号一次,用来持续监控电流。

  • 注入组 :通常由您手动按键(软件调用函数) 或者外部突发紧急事件触发,只在需要的时候才叫号(比如测温度)。


4. 拿货方式(数据搬运)不同

  • 规则组 :因为只有一个出口,又来得快(定时器催着),必须配一条自动传送带(DMA) 把货不停搬走,不然货就堆在出口被挤掉。

  • 注入组 :因为每次只测1~4个通道,又是按需触发,所以直接用手动提货(CPU读取寄存器) 即可,不需要DMA。


总结成一句话

对比项 规则组(常规组) 注入组
优先级 低(能被插队) 高(插别人队)
寄存器 只有1个(DR) 有4个专用寄存器(JDR1~4)
通常谁触发 定时器(周期自动) 软件调用(按需)
数据搬运 必须用DMA 不用DMA,直接读
典型用途 连续采集(三相电流) 突发测量(温度、故障信号)
相关推荐
阿尼卡~14 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows
从小白到软工1 天前
5-2 从查表到控件:造按钮
c语言·开发语言·数据结构·经验分享·ai编程
水饺编程1 天前
第2章:Linux 基础,解压缩【.tar.gz】压缩包
linux·c语言·汇编
cu1431 天前
细谈IT6653的具体功能与其应用
c语言·c++·单片机·嵌入式硬件
夏虫不可与之言冰1 天前
RMT 与 WS2812 灯带:可寻址 RGB 全彩控制
c语言·c++·单片机·物联网·visual studio
羊锦磊1 天前
嵌入式基础1
c语言·c++·gnu
唐青枫1 天前
C 语言 calloc() 详解:零初始化、动态数组与内存管理实战
c语言
David猪大卫1 天前
【C++修炼】STL容器—stack与queue
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
瑶池酒剑仙1 天前
C++变量初始化五法完全指南:默认/拷贝/直接/列表/值初始化与窄化转换陷阱(青云之志)
c语言·开发语言·数据结构·c++·算法·visual studio
沐晓时光1 天前
C语言入门,深入理解指针(6)
c语言·开发语言