当前位置: 首页 > news >正文

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

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

问题描述:
adcSensorValue[0],adcSensorValue[3],adcSensorValue[6]… //存储通道1数据
adcSensorValue[1],adcSensorValue[4],adcSensorValue[7]… //存储通道2数据
adcSensorValue[2],adcSensorValue[5],adcSensorValue[8]… //存储通道3数据
多次调用HAL_ADC_Start_DMA(&hadc3,(unsigned int *)adcSensorValue,ADC_SENSOR_LEN);后出现adcSensorValue[0],adcSensorValue[3],adcSensorValue[6]…采集的是通道3的值并非是通道1的值

#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);开始采集的时候,数据就可以对齐了,不会错乱

HAL_ADC_Stop_DMA(&hadc3);
http://www.lryc.cn/news/190095.html

相关文章:

  • Linux内存管理 (2):memblock 子系统的建立
  • 创新学习方式,电大搜题助您迈向成功之路
  • Mybatis整理
  • pytorch定义datase多次重复采样
  • 自动化测试 —— Pytest fixture及conftest详解!
  • Nginx解析漏洞
  • 【机器学习】决策树原理及scikit-learn使用
  • #基于一个小车项目的FREERTOS分析(一)系统时钟
  • ubuntu mmdetection配置
  • 嵌入式面试常见问题(一)
  • docker批量删除本地镜像
  • 数据结构(一)—— 数据结构简介
  • Ubuntu输入正确密码重新跳到登录界面
  • TCP/IP(十四)流量控制
  • CSS网页标题图案和LOGO SEO优化
  • 机器人制作开源方案 | 双轮提升搬运小车
  • 5G安卓核心板-MT6833/MT6853核心板规格参数
  • 信创之国产浪潮电脑+统信UOS操作系统体验4:visual studio code中怎么显示中文
  • Magica Cloth 使用方法笔记
  • c++ 学习之 强制类型转换运算符 const_cast
  • Ceph相关部署应用(博客)
  • 基于 ceph-deploy 部署 Ceph 集群 超详细
  • 做一个物联网的后台程序与数据库设计
  • Pytorch深度学习—FashionMNIST数据集训练
  • uniapp 返回上一步携带参数
  • 软件工程与计算总结(七)需求文档化与验证
  • MySQL锁概述
  • 【Ceph Block Device】块设备挂载使用
  • Arbitrum Stylus 的工作原理
  • nextjs构建服务端渲染,同时使用Material UI进行项目配置