登录/注册

stm32 双adc注入模式

更多

在STM32微控制器中,双ADC注入模式是一种高级的ADC工作模式,允许两个ADC模块(如ADC1和ADC2)协同工作,以高效处理高优先级的模拟信号(注入通道)。以下是关键要点和配置步骤:


核心概念

  1. 注入通道 vs 规则通道

    • 规则通道:用于常规、顺序采样的通道,可配置多路复用。
    • 注入通道:具有更高优先级,可打断正在进行的规则转换,适合紧急或高精度信号(如过压检测)。
  2. 双ADC模式

    • 两个ADC可组合工作,典型模式包括:
      • 同步注入模式:两个ADC同时采样同一触发信号。
      • 交替模式:ADC1和ADC2交替采样以提高吞吐率。
    • 注入通道在此模式下可实现更灵活的触发和数据管理。

配置步骤

  1. 初始化ADC模块

    // 使能ADC1和ADC2时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2, ENABLE);
    
    // ADC基本参数(分辨率、对齐方式等)
    ADC_InitTypeDef ADC_InitStruct;
    ADC_InitStruct.ADC_Resolution = ADC_Resolution_12b;
    ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right;
    ADC_InitStruct.ADC_ScanConvMode = ENABLE;  // 扫描模式
    ADC_Init(ADC1, &ADC_InitStruct);
    ADC_Init(ADC2, &ADC_InitStruct);
  2. 配置双ADC模式

    ADC_CommonInitTypeDef ADC_CommonInitStruct;
    ADC_CommonInitStruct.ADC_Mode = ADC_DualMode_RegInjecSimult; // 规则和注入同步模式
    ADC_CommonInitStruct.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; // 根据需求启用DMA
    ADC_CommonInitStruct.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
    ADC_CommonInit(&ADC_CommonInitStruct);
  3. 设置注入通道参数

    // 配置ADC1的注入通道(例如通道4)
    ADC_InjectedChannelConfig(ADC1, ADC_Channel_4, 1, ADC_SampleTime_15Cycles);
    
    // 配置ADC2的注入通道(例如通道5)
    ADC_InjectedChannelConfig(ADC2, ADC_Channel_5, 1, ADC_SampleTime_15Cycles);
    
    // 设置注入触发源(如定时器触发)
    ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_T2_TRGO);
    ADC_ExternalTrigInjectedConvConfig(ADC2, ADC_ExternalTrigInjecConv_T2_TRGO);
  4. 同步触发配置

    • 使用同一触发源(如定时器TRGO信号)确保两个ADC同步启动注入转换:
      // 配置定时器触发(以TIM2为例)
      TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update);
  5. 读取注入数据

    // 等待转换完成
    while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_JEOC));
    
    // 读取ADC1和ADC2的注入数据
    uint16_t adc1_data = ADC_GetInjectedConversionData(ADC1, ADC_InjectedChannel_1);
    uint16_t adc2_data = ADC_GetInjectedConversionData(ADC2, ADC_InjectedChannel_1);

关键注意事项

  1. 触发同步:确保两个ADC使用同一触发源,或通过主从模式(如ADC1触发ADC2)实现精确同步。
  2. 中断优先级:注入转换完成中断(JEOC)应设为高优先级,以快速响应。
  3. 数据对齐:双ADC的数据寄存器可能需要组合处理(如32位合并)。
  4. 资源冲突:避免规则通道和注入通道的配置冲突,尤其是触发源和DMA设置。

典型应用场景

通过合理配置双ADC注入模式,可显著提升系统对关键信号的响应速度和采样效率。建议参考具体型号的参考手册(如STM32F4xx或H7xx系列)以获取寄存器级细节。

STM32CUBEIDE(9)----ADC轮询模式扫描多个通道

概述 本章STM32CUBEMX配置STM32F103双ADC轮询

2026-06-16 10:13:34

STM32L431RCT6进入STOP模式后,ADC注入通道不再触发是为什么?

STM32L431RCT6 ADC注入通道是通过定时器触发的,调试发现定时器正常触发,但是不会触发

2024-03-15 06:32:57

hc32和stm32 adc的区别

的ADC模块还支持多种不同的采样方式,例如单次模式、扫描模式、双缓冲

2023-08-16 11:33:26

STM32ADC模式及其应用

记将帮助 ADC 模块用户了解 STM32 微控制器提供的一些高级模式并快速着手开发。所介绍的每种

资料下载 zq1943 2023-08-31 10:51:35

AN3116_STM32ADC模式及其应用

AN3116_STM32的ADC模式及其应用

资料下载 佚名 2022-11-21 17:07:06

AN4195_STM32F30x系列ADC模式与应用

AN4195_STM32F30x系列ADC的模式与应用

资料下载 李玲 2022-11-21 08:11:33

STM32ADC学习历程

STM32的ADC学习历程(电源技术期刊影响因子)- STM32的ADC

资料下载 王越建 2021-09-27 12:32:55

STM32ADC驱动程序

STM32的ADC驱动程序(电源技术被踢出核心)-  STM32的ADC

资料下载 刘满贵 2021-09-23 13:43:22

STM32L431RCT6进如STOP模式后,ADC注入通道定时器会正常触发但不会触发注入通道

STM32L431RCT6 ADC注入通道是通过定时器触发的,调试发现定时器正常触发,但是不会触发

2023-08-05 07:09:04

STM32ADC采集基本知识介绍

双 ADC 的机制就是使用两个 ADC 同时采样一个或者多个通道。双重ADC

2023-07-08 15:55:24

在常规模式下带DMA的ADC会比注入模式更快是吗

在常规模式下,带 DMA 的 ADC 会比注入模式更快,不是吗?

2022-12-19 08:00:38

STM32CUBEIDE(9)----ADC轮询模式扫描多个通道

概述 本章STM32CUBEMX配置STM32F103双ADC轮询

2022-11-30 09:35:17

STM32CUBEMX开发GD32F303(10)----ADC轮询模式扫描多个通道

。 本章主要配置,双ADC轮询模式扫描多个通道,通过串口进行打印。 查阅手册可以得知,PA9、PA10为串口0的输出和输入口。

2022-11-29 17:38:56

STM32F103ADC同步规则模式采集实验

  双重 ADC 同步规则模式采集实验与多路LCD 波形示波器制作显示,本文展示了STM32 AD 双重

2022-02-24 10:47:31

灵动微课堂 (第195讲) | MM32F3270 ADC注入通道

N个PCLK2的时钟周期再开始采样。如果是触发扫描模式,只有第一个通道采样被延时,其余通道是在上一个采样结束后立即开始。设置ADC_ANY_CR寄存器的JTRGEN位可以使用外部事件触发

2022-01-10 11:35:31
7天热门专题 换一换
相关标签