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

stm32 H7 ADC DMA采集

学习记录一下

简单实现了adc采集波形数据,并通过vofa打印出波形

 定时器配置

 ADC配置

根据板子原理图,配置差分模式 

 设置dma

然后配置一下串口和时钟,生成工程,注意DMA搬运数据是需要时间的,因此需要有AdcConvEnd这样一个标志位,搬运完成之后再进下一次采集传输

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
#define SAMP_NUM 1024
/* USER CODE END PD *//* USER CODE BEGIN PV */uint16_t ADC_1_buff[SAMP_NUM];//uint16_t ADC_2_buff[SAMP_NUM];__IO uint8_t AdcConvEnd = 0;  // ADC DMA搬运完成标志
/* USER CODE END PV */
  /* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_ADC_Start_DMA(&hadc1,(uint32_t *)ADC_1_buff,SAMP_NUM);  // 开启ADC DMA采样HAL_TIM_Base_Start(&htim1); 		// 使能定时器while(!AdcConvEnd);             // DMA搬运完成标志// 打印波形数据for(int i=0;i<SAMP_NUM;i++){printf("%d\n",ADC_1_buff[i]);}}/* USER CODE END 3 */

在stm32h7xx_it.c文件中找到

void DMA1_Stream1_IRQHandler(void)
{/* USER CODE BEGIN DMA1_Stream1_IRQn 0 *//* USER CODE END DMA1_Stream1_IRQn 0 */HAL_DMA_IRQHandler(&hdma_adc1);/* USER CODE BEGIN DMA1_Stream1_IRQn 1 */AdcConvEnd = 1;    // DMA传输完成/* USER CODE END DMA1_Stream1_IRQn 1 */
}

 

串口重定向 

// 串口重定向	int fputc(int ch, FILE *f){HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);return ch;}int fgetc(FILE *f){uint8_t ch = 0;HAL_UART_Receive(&huart1, &ch, 1, 0xffff);return ch;}

 实际测试

 

 

http://www.dtcms.com/a/269386.html

相关文章:

  • 240.搜索二维矩阵Ⅱ
  • c++-引用(包括完美转发,移动构造,万能引用)
  • 华为OD机试 2025B卷 - 数组组成的最小数字(C++PythonJAVAJSC语言)
  • 【Python进阶篇 面向对象程序设计(3) 继承】
  • 使用 GDB 调试 Redis 服务进程指南
  • pyhton基础【25】面向对象进阶六
  • 【ARM AMBA AXI 入门 21.1 -- AXI partial 访问和软件的按字节访问关系】
  • Transformer模型架构深度讲解
  • 医疗AI底层能力全链条工程方案:从技术突破到临床落地
  • L0:让大模型成为通用智能体的强化学习新范式
  • 针对Exhcnage Server的攻击防范措施
  • 机器人VLA模型(Vision-Language-Action)
  • 网络安全之XSS漏洞:原理、危害与防御实践
  • 基于mysql8.0.27部署1主2从的MHA集群
  • 从问题出发看Spring的对象创建与管理
  • JDBC 注册驱动的常用方法详解
  • 7.7晚自习作业
  • 两个法宝函数-dir()和help()
  • 网络基本知识和网络传输过程
  • 深度学习7(梯度下降算法改进1)
  • H3初识——入门介绍之serveStatic、cookie
  • AI + 数据治理的趋势:让治理更智能、更敏捷
  • linux操作系统---MySQL Galera Cluster部署
  • 开源 C# .net mvc 开发(八)IIS Express轻量化Web服务器的配置和使用
  • Vidwall: 支持将 4K 视频设置为动态桌面壁纸,兼容 MP4 和 MOV 格式
  • Python 的内置函数 setattr
  • 小架构step系列07:查找日志配置文件
  • Spring Boot登录认证实现学习心得:从皮肤信息系统项目中学到的经验
  • 【力扣(LeetCode)】数据挖掘面试题0002:当面对实时数据流时您如何设计和实现机器学习模型?
  • 独立开发A/B测试实用教程