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
