GD32C103RBT6 ADC库驱动代码详解

📅 2026/7/12 17:17:24 👁️ 阅读次数 📝 编程学习
GD32C103RBT6 ADC库驱动代码详解

一、概述

 GD32C103RBT6单片机内置2个12位逐次逼近型ADC(ADC0、ADC1),支持单端/差分输入、连续/单次转换、扫描模式、间断模式等多种工作方式,同时集成温度传感器和内部参考电压(Vrefint)采集功能,最高采样率可达1Msps,能满足大部分中低速采样场景(如电压采集、传感器数据读取等)。

本文提供的ADC驱动代码基于官方固件库V1.0.0开发,适配GD32C103RBT6的ADC外设,包含所有核心功能(初始化、通道配置、采样触发、数据读取、校准、中断、DMA等),代码可直接复制到工程中使用,无需大幅修改,下文将按“概述-函数介绍-使用案例”的结构,详细说明驱动的使用方法,帮助开发者快速上手。

二、核心函数介绍

ADC驱动核心函数按功能分类,涵盖初始化、配置、操作、状态查询四大类,以下是最常用、最核心的函数详解,结合GD32C103RBT6的特性说明,新手可重点关注标注“常用”的函数。

(一)基础初始化函数

  • void adc_deinit(uint32_t adc_periph)

  • 功能:复位指定的ADC外设(ADC0或ADC1),恢复默认配置,是ADC初始化的第一步。

  • 参数:adc_periph - 需复位的ADC外设(ADC0、ADC1)。

  • 说明:每次上电或ADC配置异常时,建议先调用此函数复位。

  • void adc_mode_config(uint32_t mode)(常用)

  • 功能:配置ADC的工作模式,主要用于设置多ADC协同工作方式。

  • 参数:mode - 工作模式,单ADC使用时默认选择ADC_MODE_FREE(所有ADC独立工作),多ADC协同使用时按需选择组合模式。

  • 说明:GD32C103RBT6支持双ADC组合模式,单通道采样场景无需修改,直接使用默认模式即可。

  • void adc_data_alignment_config(uint32_t adc_periph, uint32_t data_alignment)(常用)

  • 功能:配置ADC采样数据的对齐方式,决定12位采样数据在寄存器中的存储位置。

  • 参数:adc_periph - 目标ADC外设;data_alignment - 对齐方式(ADC_DATAALIGN_RIGHT:右对齐,常用;ADC_DATAALIGN_LEFT:左对齐)。

  • 说明:12位分辨率下,右对齐时数据存于寄存器低12位,读取后可直接用于计算,推荐优先使用。

  • void adc_resolution_config(uint32_t adc_periph, uint32_t resolution)(常用)

  • 功能:配置ADC的采样分辨率,权衡采样精度与速度。

  • 参数:adc_periph - 目标ADC外设;resolution - 分辨率(ADC_RESOLUTION_12B:12位,精度最高;10B/8B/6B:精度降低,速度提升)。

  • 说明:常规场景优先选择12位分辨率,满足大部分精度需求。

  • void adc_enable(uint32_t adc_periph)(常用)

  • 功能:使能指定的ADC外设,ADC必须使能后才能进行校准和采样。

  • 参数:adc_periph - 目标ADC外设(ADC0、ADC1)。

  • void adc_calibration_enable