[麦麦茶水间] 【每周分享】ADC采样的规则通道和注入通道有什么区别?

[复制链接]
1195|4
 楼主| dffzh 发表于 2025-7-31 15:16 | 显示全部楼层 |阅读模式
在很多MCU微控制器的ADC(模数转换器)外设模块中,在配置初始化代码时会经常遇到规则通道(Regular Channel)注入通道(Injected Channel,也可能是Inserted Channel)两个概念,或者是规则组(Regular Group)注入组(Injected Group,也可能是Inserted Group),比如STM32的库代码如下图所示:
GD32的库代码如下图所示:
其实,规则通道和注入通道是ADC模块里面两种不同的转换模式,下面就详细阐述一下规则通道和注入通道的主要区别,以便大家在应用时能够清楚地进行选择。
1. 触发方式与优先级
规则通道:
用于常规的ADC转换,按顺序扫描一组预先配置的通道;
转换由软件或硬件触发(如定时器、外部事件),但无抢占机制;
规则通道组的所有转换结果通常存储在一个共同的数据寄存器中,即需要及时读取,否则会被覆盖。
注入通道:
类似于“中断”机制,可抢占规则通道的转换;
当注入通道因紧急信号或者高优先级事件等被触发,ADC会立即暂停当前规则通道的转换,优先处理注入通道,完成后恢复规则通道;
每个注入通道有独立的专用数据寄存器(如JDR1、JDR2等),避免数据覆盖,比如STM32就是通过下面的JDR偏置值进行操作:
2. 通道数量
规则通道:
支持多通道,具体数量取决于MCU型号,通过寄存器配置转换顺序。
注入通道:
通常仅支持少量通道,比如STM32中多为4个,通过注入序列寄存器配置:
再比如GD32的也多为4个:
3. 应用场景
规则通道:
适用于周期性或连续采样,如温度监测、电池电压检测等常规任务。
注入通道:
用于需要快速响应的突发事件,如过压保护、紧急按键检测等,确保关键信号优先处理。
4. 数据管理
规则通道:
转换结果存储在数据寄存器中,需要在下次转换前读取,否则数据丢失,如GD32:
注入通道:
结果存储在独立的数据寄存器中,数据更安全,无需频繁读取,如GD32:
以上从触发方式和优先级、通道数量、应用场景和数据管理四个方面讲解了规则通道和注入通道的主要区别,希望可以给正在迷惑如何使用的你提供一些参考价值~~。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
复古留声机 发表于 2025-8-2 18:36 | 显示全部楼层
感谢分享,规则通道和注入通道的区别确实很重要,特别是在处理需要快速响应的信号时。注入通道的优先级处理机制对于紧急情况非常有用。
旧年胶片 发表于 2025-8-27 13:43 | 显示全部楼层
规则通道是常规采样通道,按预设顺序循环采样,是主要采样方式。注入通道为优先级更高的突发采样,可打断规则通道,完成后自动返回

评论

是的,抢占式采样。  发表于 2025-8-27 13:58
您需要登录后才可以回帖 登录 | 注册

本版积分规则

110

主题

1198

帖子

22

粉丝
快速回复 在线客服 返回列表 返回顶部