[STM32F3] 多通道ADC扫描顺序乱了?

[复制链接]
 楼主| Bblythe 发表于 2025-5-5 07:57 | 显示全部楼层 |阅读模式
设置了规则组顺序,但DMA里数据总是对不上,是缓存问题吗?
Clyde011 发表于 2025-5-5 07:59 | 显示全部楼层
有时候CubeMX配置和实际顺序不一致。
公羊子丹 发表于 2025-5-5 08:00 | 显示全部楼层
F3的ADC有双通道,先确认你是不是用的并行模式?
周半梅 发表于 2025-5-5 08:01 | 显示全部楼层
DMA搬运顺序要和通道配置一致。
帛灿灿 发表于 2025-5-5 08:02 | 显示全部楼层
我把rank错设成了1导致顺序乱了。
童雨竹 发表于 2025-5-5 08:02 | 显示全部楼层
配置顺序决定了扫描的实际顺序。
万图 发表于 2025-5-5 08:03 | 显示全部楼层
检查是否有寄存器被重置。
Wordsworth 发表于 2025-5-5 08:04 | 显示全部楼层
用单次转换模式测试顺序是否一致。
 楼主| Bblythe 发表于 2025-5-5 08:05 | 显示全部楼层
我用断点抓DMA buffer对照才找出问题。
Pulitzer 发表于 2025-5-5 08:06 | 显示全部楼层
看看DMA传输长度对上了吗?
Uriah 发表于 2025-5-5 08:06 | 显示全部楼层
加个标志位判断转换结束时是哪一组。
冰春彩落下 发表于 2025-5-13 20:17 | 显示全部楼层
SQR1寄存器的L字段定义序列长度(0-15),若实际配置的通道数超过L+1,超出部分会被忽略或覆盖

远山寻你 发表于 2025-5-13 20:30 | 显示全部楼层
STM32F3中使用多通道ADC扫描时,若规则组顺序配置正确但DMA数据与预期通道不匹配,问题通常源于ADC序列配置错误、DMA传输机制冲突或硬件资源竞争,而非单纯缓存问题

一秒落纱 发表于 2025-5-13 20:59 | 显示全部楼层
通道顺序与寄存器设置不匹配,STM32F3ADC规则组序列(SQR1-SQR3)需严格对应实际通道顺序。若配置错误(如通道号写错、序列长度不匹配),会导致DMA读取数据与预期通道错位

淡漠安然 发表于 2025-5-13 21:58 | 显示全部楼层
DMA缓冲区未对齐或大小不足,STM32F3DMA要求缓冲区地址按数据类型对齐(如uint16_t2字节对齐)。若缓冲区未对齐或长度不足(如3通道扫描但缓冲区仅分配2uint16_t),会导致数据覆盖或错位

光辉梦境 发表于 2025-5-13 22:15 | 显示全部楼层
DMA传输模式不匹配,若未启用循环模式(DMA_CCR_CIRC)且传输次数(NDTR)与ADC序列长度不一致,可能导致数据截断或重复

夜阑风雨 发表于 2025-5-13 22:40 | 显示全部楼层
若使用多ADC同步扫描(如ADC1+ADC2),需确保触发信号(如JSWSTARTJEXTSEL)和序列配置一致,否则可能引发数据错乱。

三生万物 发表于 2025-5-13 22:47 | 显示全部楼层
ADCDMA的时钟源(如HCLKPCLK2)需独立配置且频率匹配。若时钟未正确使能或分频设置错误,可能导致数据采样与传输不同步

江河千里 发表于 2025-5-13 23:21 | 显示全部楼层
确认RCC_AHBENRDMA时钟)、RCC_APB2ENRADC时钟)已使能,且ADC时钟频率≤36MHzSTM32F3系列限制)

暖了夏天蓝了海 发表于 2025-5-13 23:30 | 显示全部楼层
若在ADC转换完成中断(ADC_IRQHandler)中操作DMA缓冲区(如读取或清空),可能引发竞态条件,导致数据不一致

您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

5717

帖子

0

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