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

STM32H743单片机实现ADC+DMA多通道检测

在stm32cubeMX上配置ADC+DMA实现多通道检测功能

 DMA配置

 生成代码,HAL_ADC_Start_DMA开始DMA读取ADC值,HAL_ADC_Stop_DMA关闭DMA读取

void Start_ADC2_DMA(void) {/* 初始化后校准ADC */HAL_ADCEx_Calibration_Start(&hadc2, ADC_CALIB_OFFSET, ADC_SINGLE_ENDED); // 执行ADC校准/* 启动ADC连续转换(不间断轮询) */HAL_ADC_Start_DMA(&hadc2, (uint32_t*)adc2_values, ADC2_CHANNELS);
}
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) {if (hadc->Instance == ADC2)  // 确认是ADC2的转换完成{adc_ready |= 0x01; // 标记ADC2数据就绪HAL_ADC_Stop_DMA(&hadc2);}
}
void AdcTask(void *argument)
{Start_ADC2_DMA();int i = 0;float voltage;for (;;) {if (adc_ready == 0x01) { // 等待两组ADC数据就绪/* 打印ADC2数据 */for (i = 0; i < hadc2.Init.NbrOfConversion; i++) {voltage = adc2_values[i] * VEF / VEFVALUE;printf("ADC2[%d] = %d.%dV\r\n", i, (uint32_t) voltage,(uint32_t) (voltage * 100) % 100);}printf("\n");adc_ready = 0; // 清除标志位}osDelay(100);}
}

共勉!!!STM32H743单片机实现ADC+DMA多通道检测+事件组-CSDN博客

相关文章:

  • 匿名函数对编译错误的影响
  • day17 天池新闻数据KMeans、DBSCAN 与层次聚类的对比
  • SpringSecurity配合Thymeleaf实现详解,以及实战用例
  • 【计网】ipconfig、ping、arp、tracert
  • mysql中select 1 from的作用
  • 嵌入式MCU语音识别算法及实现方案
  • 自动生成 te.extern 接口:TVM 中第三方库的智能化接入方案
  • 达梦DM数据库安装步骤
  • GuassDB如何创建兼容MySQL语法的数据库
  • linux 如何防止内存碎片化?
  • 企业CMS中的内容中台是什么?
  • 【JS逆向基础】WEB基础
  • RN学习笔记 ✅
  • 如何将C#程序打包成软件绿色包
  • 快速学会Linux的WEB服务
  • 极新月报·2025.4人工智能投融资观察
  • 系统级编程(二):通过读取PE文件获取EXE或者DLL的依赖
  • 使用hybird做接口配置
  • SUPER-VLAN基础配置
  • 获取或比对文件的MD5值或SHA值(C#项目源码)
  • 暴雨蓝色预警:南方开启较强降雨过程
  • 解读|降准叠加政策利率、公积金贷款利率、结构性政策工具利率全线下调,影响有多大?
  • 中邮保险斥资8.69亿元举牌东航物流,持股比例达5%
  • 李云泽:小微企业融资协调工作机制已发放贷款12.6万亿元
  • 同为“东部重要中心城市”后交出首份季报:宁杭苏表现如何?
  • 默茨当选德国总理