STM32_DMA_多通道采集ADC出现错位现象

STM32_DMA_多通道采集ADC出现错位现象

问题描述:

adcSensorValue0,adcSensorValue3,adcSensorValue6... //存储通道1数据

adcSensorValue1,adcSensorValue4,adcSensorValue7... //存储通道2数据

adcSensorValue2,adcSensorValue5,adcSensorValue8... //存储通道3数据

多次调用HAL_ADC_Start_DMA(&hadc3,(unsigned int *)adcSensorValue,ADC_SENSOR_LEN);后出现adcSensorValue0,adcSensorValue3,adcSensorValue6...采集的是通道3的值并非是通道1的值

c 复制代码
#define ADC_SENSOR_LEN 			30					//缓存空间的大小
#define ADC_SENSOR_CHANNEL 	3	//采样通道数量
unsigned short adcSensorValue[ADC_SENSOR_LEN] = {0};	//设置采样缓存空间

MX_DMA_Init();
MX_ADC3_Init();

HAL_ADCEx_Calibration_Start(&hadc3);	//校准ADC,否则测出来的值偏小,或者是不准确
HAL_ADC_Start_DMA(&hadc3,(unsigned int *)adcSensorValue,ADC_SENSOR_LEN);	//开始DMA采集

解决办法:

在不要采集ADC的时候,或是临时想要暂停采集的地方停止MDA工作,这样下次再调用HAL_ADC_Start_DMA(&hadc3,(unsigned int *)adcSensorValue,ADC_SENSOR_LEN);开始采集的时候,数据就可以对齐了,不会错乱

c 复制代码
HAL_ADC_Stop_DMA(&hadc3);
相关推荐
幼儿园蛋小黑3 小时前
单片机数码管LED灯独立按键中断定时器综合实战
单片机·嵌入式硬件
自小吃多3 小时前
PCB Editor软件复制、改变、删除操作笔记
笔记·嵌入式硬件
数字新视界4 小时前
数据中心基础设施管理系统发布新版本,助力企业云化转型
嵌入式硬件·物联网·数据中心·数据中心基础设施管理·dcim管理系统
SKH.5 小时前
单片机(1)
单片机·嵌入式硬件
llilian_165 小时前
小切口解决大问题:时序校准场景下的标准时间间隔脉冲信号发生器应用方案
功能测试·单片机·嵌入式硬件·51单片机
宁静致远20215 小时前
VSCode 开发 STM32 的 Keil工程 (Keil Assistant)
vscode·stm32·stm32cubeide
三块石头1016 小时前
车载ADC避坑:为什么ADC采集值偏低?
经验分享·stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程
jianqiang.xue6 小时前
ESP-IDF保姆级入门39|固件安全与安全启动全解:签名校验/Flash加密/防回滚/OTP密钥/知识产权保护,掌握工业级固件安全防护体系
单片机·物联网·esp32
llilian_166 小时前
时间统一系统 高精度时统设备选购避坑指南 授时系统
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机
en.en..6 小时前
sizeof与strlen的区别(附UDP网络编程实战坑点)
单片机·嵌入式硬件