打印
[STM32WL]

STM32W108 ADC多通道问题

[复制链接]
744|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
七毛钱|  楼主 | 2023-12-20 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32W108单通道如下设置就可以了

void ADCConfiguration(void){
  // 将GPIOA的引脚5定义为模拟输入
  halGpioConfig(PORTA_PIN(5), GPIOCFG_ANALOG);
  
    ADC_CFG = 0;
    ADC_OFFSET = 0;
    ADC_GAIN = 0x8000;
    ADC_DMACFG = ADC_DMARST;
  
    ADC_DMACFG = (ADC_DMAAUTOWRAP | ADC_DMALOAD);
   ADC_DMABEG = (int32u)&adcData;
    ADC_DMASIZE = 1;
  
  // DMA缓冲区满中断使能
  INT_ADCCFG = INT_ADCULDFULL;
  // 清除所有中断标志
  INT_ADCFLAG = 0xFFFF;
  // 使能ADC全局中断
  INT_CFGSET = INT_ADC;
  
  ADC_CFG = (// 采样时间:1024 clocks,有效位:10 bits
               (5

使用特权

评论回复
沙发
jcky001| | 2024-1-12 16:30 | 只看该作者
楼主是想问多通道设置问题?

使用特权

评论回复
板凳
周半梅| | 2025-4-7 07:26 | 只看该作者
如果你想要使用多通道,可以在 ADC_CFG 里设置扫描模式,或者使用 ADC 的转换序列来切换通道。

使用特权

评论回复
地板
帛灿灿| | 2025-4-7 07:27 | 只看该作者
你这段代码是单通道的配置,做多通道时,你需要手动设置每个通道的输入引脚以及 DMA 缓冲区,确保每个通道都有对应的数据存储空间。

使用特权

评论回复
5
童雨竹| | 2025-4-7 07:28 | 只看该作者
如果你要使用多通道,建议把每个通道的配置都放在一个循环里,动态配置不同的 ADC 通道,并启用扫描模式。

使用特权

评论回复
6
万图| | 2025-4-7 07:30 | 只看该作者
你需要确认 ADC_CFG 的设置是否包含了多通道模式。可以通过 ADC_CR 配置寄存器来选择连续转换模式或扫描模式。

使用特权

评论回复
7
Wordsworth| | 2025-4-7 07:31 | 只看该作者
在 STM32W108 的多通道 ADC 配置中,你可能还需要调整 ADC_SEQ 寄存器,定义 ADC 扫描的通道顺序。

使用特权

评论回复
8
Bblythe| | 2025-4-7 07:32 | 只看该作者
如果你需要多通道的 DMA 传输,确保 ADC_DMACFG 配置了正确的自动重装和加载模式,避免数据丢失。

使用特权

评论回复
9
Pulitzer| | 2025-4-7 07:33 | 只看该作者
多通道配置时,记得设置每个通道的采样时间,可能不同通道的采样时间需要配置为不同的值,避免数据采样不准确。

使用特权

评论回复
10
Uriah| | 2025-4-7 07:34 | 只看该作者
看你的代码,配置单通道是没问题的,做多通道时,可能需要在 DMA 中分配一个更大的缓冲区并且保证每次采样的数据不会被覆盖。

使用特权

评论回复
11
Clyde011| | 2025-4-7 07:35 | 只看该作者
试试通过使能 ADC 扫描模式,确保它能够自动依次转换不同通道的数据,你的代码逻辑就可以扩展到多个通道了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

366

主题

2512

帖子

4

粉丝