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)
相关推荐
这波不该贪内存的14 小时前
裸机开发VS单片机:架构与实战对比
单片机
山羊硬件Time15 小时前
自动化管理Linux的好工具:shell script
linux·嵌入式硬件·硬件工程师·基带工程·硬件开发
神一样的老师15 小时前
【兆易创新GD32VW553开发板试用】红外遥控接入天气时钟实战
驱动开发·单片机·嵌入式硬件
asjodnobfy15 小时前
Π型滤波电路
嵌入式硬件·硬件工程
多看多敲多思考17 小时前
华润微CS32ME10 MCU使用教程(2)---CS32ME10之UART串口模块使用
stm32·单片机·嵌入式硬件·mcu
神一样的老师17 小时前
【兆易创新GD32VW553开发板试用】天气时钟设计与调试实战
单片机·嵌入式硬件·物联网
国科安芯18 小时前
核电站仪控与监测系统中抗辐射 MCU 芯片应用研究
单片机·嵌入式硬件·macos·无人机·cocos2d·核电站
黑白园18 小时前
STM32系统时钟由72M修改为36M验证示例
stm32·单片机·嵌入式硬件
LCG元19 小时前
基于ARM7的LCD设计与实现:S3C4510B通用IO口控制液晶模块
stm32·单片机·嵌入式硬件
山后太阳19 小时前
Keil5(MDK-ARM)完整下载安装教程+入门教程:从零搭建STM32开发环境
arm开发·stm32·嵌入式硬件