<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ADC采样不准]]></title><description><![CDATA[<p dir="auto">目前情况为：对于ADC0分配了三个通道 ADC1分配了一个通道，其中ADC0的ADC_INPUTCHAN_EXT25和ADC1的ADC_INPUTCHAN_EXT21是不准确(前者偏差0.7v，后者偏差0.4v)，ADC0的ADC_INPUTCHAN_EXT14和ADC_INPUTCHAN_EXT19是准确的<br />
具体配置如下：</p>
<pre><code>const adc_converter_config_t adc_config0={
    .clockDivider=0,
    .startTime=12,
    .sampleTime=16,
    .overrunMode=false,
    .autoOffEnable=false,
    .waitEnable=false,
    .trigger=ADC_TRIGGER_SOFTWARE,
    .align=ADC_ALIGN_RIGHT,
    .resolution=ADC_RESOLUTION_12BIT,
    .dmaWaterMark=0,
    .dmaEnable=false,
    .sequenceConfig={
        .sequenceMode=ADC_CONV_STEP,
        .sequenceIntEnable=true,
        .convIntEnable=false,
        .readyIntEnable=false,
        .ovrunIntEnable=false,
        .sampIntEnable=false,
        .channels={
            ADC_INPUTCHAN_EXT14,
            ADC_INPUTCHAN_EXT19,
            ADC_INPUTCHAN_EXT25,
        },
        .totalChannels=3,
    },
    .adcCompareCnt=0,
};

const adc_converter_config_t adc_config1={
    .clockDivider=0,
    .startTime=12,
    .sampleTime=16,
    .overrunMode=false,
    .autoOffEnable=false,
    .waitEnable=false,
    .trigger=ADC_TRIGGER_SOFTWARE,
    .align=ADC_ALIGN_RIGHT,
    .resolution=ADC_RESOLUTION_12BIT,
    .dmaWaterMark=0,
    .dmaEnable=false,
    .sequenceConfig={
        .sequenceMode=ADC_CONV_STEP,
        .sequenceIntEnable=true,
        .convIntEnable=false,
        .readyIntEnable=false,
        .ovrunIntEnable=false,
        .sampIntEnable=false,
        .channels={
            ADC_INPUTCHAN_EXT21,
        },
        .totalChannels=1,
    },
    .adcCompareCnt=0,
};

/* ADC0通道配置数组 - 单通道独立配置 */
const adc_sequence_config_t adc0_ChnConfigArray[8] = {
    /* 通道0: PTC_16 -&gt; ADC0_S14 -&gt; EXT14 (ON_AD功能) */
    {
        .sequenceIntEnable  = false,
        .convIntEnable      = false,
        .readyIntEnable     = false,
        .ovrunIntEnable     = false,
        .sampIntEnable      = false,
        .sequenceMode       = ADC_CONV_STEP,
        .channels           = { ADC_INPUTCHAN_EXT14 },
        .totalChannels      = 1,
    },
    /* 通道1: PTB_22 -&gt; ADC0_S19 -&gt; EXT19 (ACC_AD功能) */
    {
        .sequenceIntEnable  = false,
        .convIntEnable      = false,
        .readyIntEnable     = false,
        .ovrunIntEnable     = false,
        .sampIntEnable      = false,
        .sequenceMode       = ADC_CONV_STEP,
        .channels           = { ADC_INPUTCHAN_EXT19 },
        .totalChannels      = 1,
    },
    /* 通道2: PTB_9 -&gt; ADC0_S25 -&gt; EXT25 (备用) */
    {
        .sequenceIntEnable  = false,
        .convIntEnable      = false,
        .readyIntEnable     = false,
        .ovrunIntEnable     = false,
        .sampIntEnable      = false,
        .sequenceMode       = ADC_CONV_STEP,
        .channels           = { ADC_INPUTCHAN_EXT25 },
        .totalChannels      = 1,
    },
    // /* 通道3-7: 备用通道 */
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
};

/* ADC1通道配置数组 - 顺序与adc_config1的channels列表保持一致 */
const adc_sequence_config_t adc1_ChnConfigArray[8] = {
    /* 通道0: PTD_27 -&gt; ADC1_S21 -&gt; EXT21 (5V_AD功能) */
    {
        .sequenceIntEnable  = false,
        .convIntEnable      = false,
        .readyIntEnable     = false,
        .ovrunIntEnable     = false,
        .sampIntEnable      = false,
        .sequenceMode       = ADC_CONV_STEP,
        .channels           = { ADC_INPUTCHAN_EXT21 },
        .totalChannels      = 1,
    },
    // /* 通道1-4: 原INPUT1~4通道，已停用 */
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // /* 通道5-7: 备用通道 */
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
    // { .sequenceIntEnable=false, .convIntEnable=false, .readyIntEnable=false, .ovrunIntEnable=false, .sampIntEnable=false, .sequenceMode=ADC_CONV_STEP, .channels={ ADC_INPUTCHAN_EXT0 }, .totalChannels=1 },
};
</code></pre>
<p dir="auto">调用情况如下</p>
<pre><code>int16_t HAL_ADC_GetValue(uint32_t instance, uint8_t chn)
{
	uint32_t convtime = 0;
    uint16_t value;
	/* 根据ADC实例选择对应的配置数组 */
	const adc_sequence_config_t *chnConfig;
	if (instance == INST_ADC0) {
		chnConfig = &amp;adc0_ChnConfigArray[chn];
	} else if (instance == INST_ADC1) {
		chnConfig = &amp;adc1_ChnConfigArray[chn];
	} else {
		return -1;  // 无效的ADC实例
	}
	ADC_DRV_ConfigSequence(instance, chnConfig);
	ADC_DRV_Start(instance);
	while(!ADC_DRV_GetEndOfSequenceFlag(instance))
	{
        /* AD值采集超时,避免死循环等待 */
		if (++convtime &gt;= ADC_TIMEOUT) {
            return -1;
		}
	}
    ADC_DRV_ClearEoseqFlagCmd(instance);
    value =  ADC_DRV_ReadFIFO(instance);
    return value;
}
</code></pre>
<p dir="auto">打印出来的FIFO如下图 ADC0和ADC1是准确的 ADC3和ADC4分别有0.7v和0.4v的偏差<br />
<img src="https://yt-static-main.oss-cn-shanghai.aliyuncs.com/nodebb/1925/9bd426b3-1b05-4252-ad2b-ee0395ad3e9a.png" alt="34b52204-55ef-449c-a1a1-588615b85d60-image.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forum.ytmicro.com/topic/2216/adc采样不准</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 06:06:15 GMT</lastBuildDate><atom:link href="https://forum.ytmicro.com/topic/2216.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Aug 2026 07:20:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ADC采样不准 on Wed, 26 Aug 2026 07:30:18 GMT]]></title><description><![CDATA[<p dir="auto">可以参考这份帖子做一些检查：<a href="https://forum.ytmicro.com/topic/444/adc%E9%87%87%E6%A0%B7%E6%BC%82%E7%A7%BB%E6%88%96%E4%B8%8D%E5%87%86%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5%E6%96%B9%E6%B3%95?_=1787729289090">https://forum.ytmicro.com/topic/444/adc采样漂移或不准问题排查方法?_=1787729289090</a></p>
]]></description><link>https://forum.ytmicro.com/post/9552</link><guid isPermaLink="true">https://forum.ytmicro.com/post/9552</guid><dc:creator><![CDATA[yangke]]></dc:creator><pubDate>Wed, 26 Aug 2026 07:30:18 GMT</pubDate></item><item><title><![CDATA[Reply to ADC采样不准 on Wed, 26 Aug 2026 07:26:26 GMT]]></title><description><![CDATA[<p dir="auto">参考下36页[E600002]<a href="https://yt-static-main.oss-cn-shanghai.aliyuncs.com/nodebb/805/8dca741e-b68b-4829-83c9-a343ac4af2fe.pdf" rel="nofollow ugc">YTM32B1HA0_Errata_Sheet_v1.6.pdf</a></p>
]]></description><link>https://forum.ytmicro.com/post/9551</link><guid isPermaLink="true">https://forum.ytmicro.com/post/9551</guid><dc:creator><![CDATA[李富贵]]></dc:creator><pubDate>Wed, 26 Aug 2026 07:26:26 GMT</pubDate></item></channel></rss>