【ADC】STM32实现 ADC 功能

一、前言

在嵌入式开发中,ADC(模数转换器)是非常重要的一个外设,广泛应用于电压采样、温度检测、电池电量监控等领域。STM32F103C8T6 内部集成了多达 10 个 12 位 ADC 输入通道,能够快速、精准地对模拟信号进行采样。

本文将以采集一个简单电压信号为例,介绍 STM32F103C8T6 使用标准库实现 ADC 功能的全过程。

二、ADC 基本介绍

STM32F103 系列 ADC 的基本参数如下:

  • 12 位分辨率(采样范围 0~4095)
  • 采样时间可调(Tsample)
  • 支持单次转换、连续转换、扫描转换
  • 支持模拟看门狗、中断、DMA 等高级功能

ADC 输入引脚范围为 03.3V,对应数值为 04095(即 4096 个等级),换算公式:

电压值 = ADC_Value / 4096.0 * 3.3V

三、硬件准备

本示例中,将使用 ADC1 的通道 1(PA1) 连接一个电位器或模拟电压源,采样电压值并通过串口打印结果。

引脚对应关系:

ADC 通道 引脚 说明
ADC1_CH1 PA1 模拟输入引脚

确保电压源范围在 0~3.3V 之间,以免烧毁芯片。

四、GPIO 与 ADC 初始化

1. 启用时钟和配置 ADC 输入引脚

void ADC_GPIO_Config(void)
{
   
   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1, ENABLE);

    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;  // 模拟输入
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

2. ADC 初始化配置

void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Maple-Leaf-Blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值