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

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

在上个文章基础上改用事件组进行处理,以便实时任务。

stm32cubeMX自动生成代码

osEventFlagsId_t adctestEventHandle;
const osEventFlagsAttr_t adctestEvent_attributes = {.name = "adctestEvent"
};adctestEventHandle = osEventFlagsNew(&adctestEvent_attributes);

编写代码DMA回调函数触发事件

#define ADC2_CONVERSION_COMPLETE_BIT	0x01
#define ADC3_CONVERSION_COMPLETE_BIT	0x02void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) {if (hadc->Instance == ADC2)  // 确认是ADC2的转换完成{osEventFlagsSet(adctestEventHandle, ADC2_CONVERSION_COMPLETE_BIT);HAL_ADC_Stop_DMA(&hadc2);} else if (hadc->Instance == ADC3)  // 确认是ADC3的转换完成{osEventFlagsSet(adctestEventHandle, ADC3_CONVERSION_COMPLETE_BIT);HAL_ADC_Stop_DMA(&hadc3);}
}

事件触发逻辑处理

void AdcTask(void *argument)
{Start_ADC2_DMA();Start_ADC3_DMA();int i = 0;uint32_t ret = 0;float voltage;for (;;) {ret = osEventFlagsWait(adctestEventHandle, ADC2_CONVERSION_COMPLETE_BIT | ADC3_CONVERSION_COMPLETE_BIT, osFlagsWaitAny, osWaitForever);if ((ret & ADC2_CONVERSION_COMPLETE_BIT) != 0){/* 打印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");}if ((ret & ADC3_CONVERSION_COMPLETE_BIT) != 0){/* 打印ADC3数据 */for (i = 0; i <  hadc3.Init.NbrOfConversion; i++) {voltage = adc3_values[i] * VEF / VEFVALUE;printf("ADC3[%d] = %d.%dV\r\n", i, (uint32_t) voltage,(uint32_t) (voltage * 100) % 100);}printf("\n\n");}osDelay(1);}
}

相关文章:

  • nut-list和nut-swipe搭配:nut-cell侧滑定义无法冒泡打开及bug(含代码、案例、截图)
  • 继电器负载知识
  • 内存的位运算
  • Dify - Stable Diffusion
  • 未来设计新篇章!2025 年 UX/UI 设计趋势,技术与体验的全新结合!
  • 基于Jetson Nano与PyTorch的无人机实时目标跟踪系统搭建指南
  • 通过CIDR推出子网掩码和广播地址等
  • 【quantity】1 SI Prefixes 实现解析(prefix.rs)
  • 网络的搭建
  • BBS (cute): 1.0.2靶场渗透
  • [Linux]多线程(一)充分理解线程库
  • TCP数据报
  • 开发积分商城为商家带来的多重优势
  • 2.4线性方程组
  • CAN通信
  • Twin Builder 中的电池等效电路模型仿真
  • 如何在 Vue3 中更好地使用 Typescript
  • 【计算机网络 第8版】谢希仁编著 第四章网络层 地址类题型总结
  • Spring Boot操作MongoDB的完整示例大全
  • 《算法导论(第4版)》阅读笔记:p9-p9
  • 我国外汇储备规模连续17个月稳定在3.2万亿美元以上
  • 外交部:印巴都表示不希望局势升级,望双方都能保持冷静克制
  • 上海虹桥高铁站拦门事件反转,谁在带偏网友?
  • 五一档7.47亿收官:《水饺皇后》领跑;男观众占比增多
  • 当AI开始谋财害命:从骗钱到卖假药,人类该如何防范?
  • 五一假期上海多个景点人流如织,警方多措并举确保秩序