STM32G070系列ADC的使用

本文详细描述了如何在STM32G070中对ADC通道进行分组初始化,包括两次初始化部分通道的过程,以及代码示例,解决了初始化后读取值不正确的问题。
摘要由CSDN通过智能技术生成

        都知道STM32G070的adc根据adc通道可分成两种模式,最近刚好有个项目把adc通道用满了,用魔方生成初始化,最后却不是我要的值,到处搜刮资料和别人大佬的心得,最后可以了。

        原理很简单,分两次初始化 AIN0~14一个,AIN15~18一个。应该还有其他方法,求其他大佬补充。

秉着有福同享的原则,奉上代码!!!!!

#include "My_ADC.h"


ADC_HandleTypeDef hadc1;
/* ADC1 init function */
void My_ADC1_Init_1(uint32_t Channel)
{
    HAL_ADC_DeInit(&hadc1);

    ADC_ChannelConfTypeDef sConfig = {0};

    /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)
    */
    hadc1.Instance = ADC1;

    hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
    hadc1.Init.Resolution = ADC_RESOLUTION_12B;
    hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
    hadc1.Init.ScanConvMode = ADC_SCAN_SEQ_FIXED;
    hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
    hadc1.Init.LowPowerAutoWait = DISABLE;
    hadc1.Init.LowPowerAutoPowerOff = DISABLE;
    hadc1.Init.ContinuousConvMode = DISABLE;
    hadc1.Init.NbrOfConversion = 1;
    hadc1.Init.DiscontinuousConvMode = DISABLE;
    hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
    hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
    hadc1.Init.DMAContinuousRequests = DISABLE;
    hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
    hadc1.Init.SamplingTimeCommon1 = ADC_SAMPLETIME_12CYCLES_5;
    hadc1.Init.SamplingTimeCommon2 = ADC_SAMPLETIME_12CYCLES_5;

    hadc1.Init.OversamplingMode = ENABLE;

    hadc1.Init.Oversampling.Ratio = ADC_OVERSAMPLING_RATIO_256;  // 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值