STM32系列(HAL库)——多通道ADC转换+DMA

 一、前期准备

1、硬件:

  • STM32C8T6最小系统板
  • USB-TTL串口模块
  • ST-Link下载器

2、软件:

  • keil5-IDE
  • cubeMX

 二、cubeMX配置

1、配置RCC——选着外部时钟源

2、配置SYS—— Serial Wire模式 

 3、时钟树拉满72M

  • ADC时钟不能超过14M

 4、配置串口1    

 5、配置DMA

  • 这里只有最后第 6 步需要修改,需要修改为循环模式,如下图

 6、配置ADC

  • 开启扫描、连续模式
  • number of converson 开了几个通道就选几
  • Rank列表下是采样顺序,顺序基于已开启的通道可以自己设定

 7、生成工程

三、keil5代码

1、串口配置

  ②usart.c添加如下代码

#include "stdio.h"
 
int fputc(int ch,FILE *f)
{
	HAL_UART_Transmit (&huart1 ,(uint8_t *)&ch,1,HAL_MAX_DELAY );
	return ch;
}

2、main函数

①添加头文件

#include "stdio.h"

②while(1)前添加

  uint16_t ADC_Value[3];

  HAL_ADCEx_Calibration_Start(&hadc1);    //AD校准
  HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC_Value,6);

③while(1)中添加

        char str[64] ;
      sprintf(str,"PA0电压:%.2fV   PA1电压:%.2fV   PA2电压:%.2fV",(ADC_Value[0]*3.3)/4095,(ADC_Value[1]*3.3)/4095,(ADC_Value[2]*3.3)/4095);
      printf("%s\r\n",str) ;
      HAL_Delay(1000) ;

四、效果

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式创客工坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值