ch571如何同时用ADC的两个通道做检测

ch571如何同时用ADC的两个通道做检测

1、用了PA12 AIN2: /* 单通道采样:选择adc通道2做采样,对应 PA12引脚, 带数据校准功能 */

2.  现在想用PA13再检测一个MIC的声音检测,上面用了单通道采样,这里如何用多道,这里我准备用中断的方式。

     但是看到

/*********************************************************************

 * @fn      ADC_IRQHandler

 *

 * @brief   ADC中断函数

 *

 * @return  none

 */

__attribute__((interrupt("WCH-Interrupt-fast")))

__attribute__((section(".highcode")))

void ADC_IRQHandler(void) //adc中断服务程序

{


    if(ADC_GetDMAStatus())

    {

        ADC_StopDMA();

        R16_ADC_DMA_BEG = ((uint32_t)adcBuff) & 0xffff;

        ADC_ClearDMAFlag();

        DMA_end = 1;

    }

    if(ADC_GetITStatus())

    {

        ADC_ClearITFlag();

        if(adclen < 20)

        {

            adcBuff[adclen] = ADC_ReadConverValue();

            ADC_StartUp(); // 作用清除中断标志并开启新一轮采样

        }

        adclen++;

    }

}

3.问题

   第一个adc检测时,它是选中ADC_ChannelCfg(2);然后读出值,那么中断的时候,我怎么选中它,万一在选中ADC_ChannelCfg(2),时,中断时读到的是2通道?


感觉思路有点乱,如何同时使用ADC的两个通道,有没有例程?个人信息保护,已隐藏,谢谢

没有同时双通道采集,需要做切换采集处理,切换的时间也很快,中断中前一次采集完成,切换为下一个。

参考:ADC切换通道 - SweetTea_lllpc - 博客园 (cnblogs.com)


只有登录才能回复,可以选择微信账号登录