stm32 HAL库实现 ADC 多通道采集

软件准备: vscode keil stm32cubemx

1.打开stm32cubemx 选择对应的芯片

2.选择单线调试模式并设置高低速外部晶振

3.配置usart1 用作串口输出打印

4.配置ADC1 的通道10 和12

5.配置时钟树

6.修改adc的常规配置

7.修改两个rank 的通道配置 修改我刚刚配置的通道和周期

8.配置adc的DMA模式输出

9.关闭DMA通道输出的中断配置

  1. 写名称并导出工程

11.使用keil打开添加c库支持文件

二,代码编写

1.输出重定向 在usart.c里面

c 复制代码
#include <stdio.h>

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

2.main 里面初始化并输出adc电压值 

```c
// 定义全局变量,用来保存转换后的数据
uint16_t data[2] = {0};



printf("ADC Double HAL Test\r\n");
  // 校准ADC
  HAL_ADCEx_Calibration_Start(&hadc1);
  // 启动ADC转换,使用DMA模式
  HAL_ADC_Start_DMA(&hadc1, (uint32_t *)data, 2);

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */

    printf("ADC1: %d, ADC2: %d\r\n", data[0], data[1]);
    HAL_Delay(1000);
  }
复制代码
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0fd03bc53a024d89914d5644776a01d3.png)
相关推荐
Dillon Dong3 小时前
【风电控制】TI TMS320F28379D 双CPU架构解析与任务分布设计
嵌入式硬件·算法·变流器·风电控制
czy87874759 小时前
vscode编译make命令要修改stm32cubemx生成的STM32F103XX_FLASH.ld文件
ide·vscode·stm32
三易串口屏11 小时前
实验20 自动灭火场景实验
嵌入式硬件·串口屏·三易串口屏·uart 通信
蒸蛋一级爱好者11 小时前
TFTP协议
单片机·嵌入式硬件
优信电子11 小时前
STM32/C51驱动 DHTC11 温湿度传感器
stm32·单片机·嵌入式硬件·c51·温湿度传感器·dhtc11·环境测量
QiLinkOS12 小时前
【从实验室到商业战场:发明专利如何重塑科技与企业的共生生态】
大数据·c语言·数据结构·c++·人工智能·单片机·算法
周周记笔记12 小时前
【元器件专题】三极管-如果B极给一个方波信号,那么V0输出也可以设计为一个方波信号
单片机·嵌入式硬件
潜创微科技12 小时前
IT68353:DP 1.4 + HDMI 2.0 + USB-C 三合一转 HDMI 2.0 单芯片KVM切换方案
嵌入式硬件·音视频
HPT_Lt13 小时前
ZCC10012支持100V/1.2A 超低静态电流同步降压转换器 兼容LM5164
单片机·嵌入式硬件
Industio_触觉智能13 小时前
瑞芯微RK3576车载智能场景之ADAS+DMS+NVR
嵌入式硬件·dms·adas·nvr·rk3576·车载智能