stm32+cubemx+adc+time定时采集+dma多通道采集

cubemx中的时钟及下载方式配置忽略,不了解的道友可以看我其他博客进行配置

打开cubemx中的adc打开4个通道

打开dma并配置

adc配置如下

要注意打开扫描模式及dma,还有ADC模式中的通道设置通道数 ,将触发方式改为定时器1,1通道触发

打开定时器配置相应频率的pwm即可,注意开启time的时钟设置为内部时钟

生成代码即可

在main.c中初始化pwm

HAL_TIM_Base_Start_IT(&htim1);
		HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);

wile函数中添加

HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC_ConvertedValue,800);
		HAL_Delay (2);
		HAL_ADC_Stop_DMA(&hadc1);
		for (i=0;i<800;i++){
			HAL_Delay (10);
			printf("%.1f           ",(double )ADC_ConvertedValue[i]);
			if((i+1)%4==0){
				printf(" 
 ");
			}
		}

在最后重定义printf,记得添加#include "stdio.h"头文件

int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
  return ch;
}

配置完毕下载运行即可

链接:https://pan.baidu.com/s/17_sdjil3Rz8tO15iGCP3ug 提取码:1111

经验分享 程序员 微信小程序 职场和发展