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)
相关推荐
LCMICRO-133108477467 小时前
长芯微LPS123完全P2P替代ADP123,高性能、低压差的线性稳压器
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发·线性稳压器
守护安静星空8 小时前
esp32开发笔记-工程搭建
笔记·单片机·嵌入式硬件·物联网·visual studio code
ACP广源盛139246256739 小时前
破局 Type‑C 切换器痛点@ACP#GSV6155+LH3828/GSV2221+LH3828 黄金方案
c语言·开发语言·网络·人工智能·嵌入式硬件·计算机外设·电脑
时空自由民.10 小时前
ST7701S 3.5寸显示屏
单片机
金戈鐡馬10 小时前
BetaFlight中的定时器引脚绑定详解
stm32·单片机·嵌入式硬件·无人机
Wave84511 小时前
FreeRTOS软件定时器详解
stm32·单片机·freertos
VBsemi-专注于MOSFET研发定制12 小时前
奶茶制作机器人功率MOSFET选型方案——高效、精准与可靠驱动系统设计指南
单片机·嵌入式硬件
水云桐程序员14 小时前
单片机项目从入门到精通
单片机·嵌入式硬件
Wave84514 小时前
STM32 裸机中断与 FreeRTOS 中断管理的四大核心差异
单片机·嵌入式硬件
若忘即安14 小时前
【硬件电路设计18】WIFI+BlueTooth
单片机·嵌入式硬件