STM32Cubemx ADC配置详解

本文详细解析了STM32CubeMX中ADC配置的多种模式,包括独立、双重及三重模式的工作原理与参数设置。深入探讨了不同模式下的时钟分频、分辨率、数据对齐方式及DMA访问模式等关键配置,为STM32 ADC模块的高级应用提供了全面指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标题STM32Cubemx ADC配置详解

ADC独立模式
在这里插入图片描述所谓独立模式,在一个管脚上只有一个ADC采集该管脚的电压。
在这里插入图片描述
ADC双重模式
在这里插入图片描述
所谓两重模式,就是ADC1_IN0,ADC2_IN0在同一管脚上,采集的是同一管脚上的电压。
在这里插入图片描述
ADC三重模式
在这里插入图片描述
所谓三重模式,ADC1_IN0,ADC2_IN0,ADC3_IN0在同一管脚上,采集的是同一管脚上的电压。 在这里插入图片描述

Parameter Settings

一、 ADCs_Common_Settings

  1. Mode: 设置ADC 工作模式(独立模式或多重模式)
    独立模式
    <1> Independent mode ADC1 和ADC2 工作在独立模式
    双重模式
    <2> Dual regular simultaneous + injected simultaneous mode ADC1 和ADC2 工作在同步规则模式和同步注入模式
    <3> regular regular simultaneous + alternate trigger mode ADC1 和ADC2 工作在同步规则模式和交替触发模式
    <4> Dual injected simultaneous mode only ADC1 和ADC2 工作在同步注入模式
    <5> Dual regular simultaneous mode only ADC1 和ADC2 工作在同步规则模式
    <6> Dual interleaved mode only ADC1 和ADC2 工作在交叉模式
    <7> Dual alternate trigger mode only ADC1 和ADC2 工作在交替触发模式
    三重模式
    <8> Triple combined regular simultaneous + injected simultaneous mode 工作在同步规则模式和同步注入模式
    <9> Triple combined regular simultaneous + alternate trigger mode 工作在同步规则模式和交替触发模式
    <10> Triple injected simultaneous mode only ADC1 和ADC2 工作在同步注入模式
    <11> Triple regular simultaneous mode only ADC1 和ADC2 工作在同步规则模式
    <12> Triple interleaved mode only ADC1 和ADC2 工作在交叉模式
    <13> Triple alternate trigger mode only ADC1 和ADC2 工作在交替触发模式

  2. DMA Access Mode :(DMA)直接存储器存取访问模式(在多重模式下才有此项)

  3. Delay between 2 sampling phases: 2个抽样阶段的延迟(在多重模式下才有此项)

二、 ADCs _Settings
<1> Clock Prescaler ADC的时钟分频数
<2> Resolution 分辨率(意思是AD位数)
<3> Data Alignment ADC 数据向左边对齐还是向右边对齐
<4> Scan Conversion Mode ADC工作在扫描模式(多通道)还是单次(单通道)模式。可以设置这个参数为ENABLE 或者DISABLE。
<5> Continuous Conversion Mode ADC模数转换工作在连续模式。可以设置这个参数为 ENABLE或者DISABLE 。
<6> Discontinuous Conversion Mode ADC模数转换工作在不连续模式(单次模式)。可以设置这个参数为 ENABLE或者DISABLE 。
<7> DMA Continuous Requests DMA连续请求
<8> End of Conversion Selection 转换选择结束

三、 ADCs_Regular_ConversionMode (规则通道转换模式)
<1> Number of Conversion ADC转换的通道数量
<2> External Trigger Conversion Source ADC外部触发转换源
<3> External Trigger Conversion Edge ADC外部触发转换边沿(意思是上升沿/下降沿触发)

四、 Rank
<1> Channel ADC转换通道
<2> Sampling Time ADC转换时间

五、 ADC_Injected_ConversionMode(注入通道转换模式)
<1> Number of Conversion ADC转换的注入通道数
注入通道数不为0时,才有下面的配置项
<2> External Trigger Source ADC外部触发转换源
<3> External Trigger Edge ADC外部触发转换边沿(意思是上升沿/下降沿触发)
<4> Injected Conversion Mode ADC注入转换通道模式

六、 Rank(ADC_Injected_ConversionMode的(Number of Conversion )ADC转换的注入通道数不为0时,才能配置注入通道的其他参数)
<1> Channel ADC转换通道
<2> Sampling Time ADC转换时间
<3> Injected Offset ADC注入通道的偏值

七、 WatchDog
<1> Enable Analog WatchDog Mode

### STM32CubeMX配置多通道ADC采样的方法 #### 配置环境准备 为了在STM32CubeMX中设置STM32 ADC进行多通道采样,需启动STM32CubeMX软件并打开对应项目文件或创建新工程。选择目标MCU型号后进入Pinout&Configuration界面。 #### 单一通道到多通道的转变 对于单一通道配置,在初始阶段可以按照常规流程完成ADC模块的基础设定,包括但不限于时钟源的选择、分辨率定义等操作[^1]。然而当涉及到多个输入信号即多通道情况时,则需要注意一些特定参数调整: - **扫描模式(Scan Conversion Mode)**:此选项允许设备依次读取不同模拟输入端口的数据值而非固定于某一路输入上。通过勾选`Enable Scan Conv. Mode`来激活该特性,这使得后续可指定参与测量过程的具体管脚集合[^3]。 - **连续转换模式(Continuous Conversion Mode)**:建议开启此项以便持续获取最新一轮完整的各路电压水平快照;反之如果仅希望触发一次性的全部通道检测则保持默认状态即可。 #### 多通道轮询方式下的注意事项 尽管理论上讲,采用纯轮询机制并不适合处理超过一条以上的传感线路因为效率低下容易造成资源浪费以及实时响应性能下降等问题,但在某些特殊应用场景下仍然可行。此时应该注意的是,由于硬件层面已经支持自动化的顺序访问各个选定好的AINx引脚,所以无需再编写额外逻辑去控制切换路径——只需确保每次查询间隔足够短从而覆盖所有关心的对象而不会遗漏重要变化趋势[^2]。 #### DMA传输优化方案 考虑到实际开发过程中往往追求更高的吞吐率和更低CPU占用比例,推荐引入直接内存存取(DMA)技术辅助完成大批量数值搬运工作。具体做法是在上述基础上进一步挑选合适的流/请求映射关系,并适当调节缓冲区大小以匹配预期吞吐速率需求。最终生成初始化代码片段将会包含必要的回调函数用于通知应用程序层有关接收完毕的消息事件。 ```c // 示例DMA配置部分伪代码 HAL_ADC_Start_DMA(&hadc1, (uint32_t*)aBuffer, BUFFER_SIZE); ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值