问答

汇集网友智慧,解决技术难题

21ic问答首页 - HC32L196使用ADC顺序扫描采样,采样值不更新

ADC HC pi IO gp GPIO

HC32L196使用ADC顺序扫描采样,采样值不更新

IchBinMarcel2021-08-10
我使用HC32L196上的PB13和PB14  进行AD采样,模式为顺序采样模式,但是发现采样值不更新,一直都是刚上电的值      
      下载视频         
代码如下:
///< 开启ADC/BGR GPIO外设时钟
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);

        Gpio_SetAnalogMode(GpioPortB, GpioPin13);        //PB13  TEMP
        Gpio_SetAnalogMode(GpioPortB, GpioPin14);        //PB14  HUMI
       
       
        stc_adc_cfg_t              stcAdcCfg;

    DDL_ZERO_STRUCT(stcAdcCfg);
    Sysctrl_SetPeripheralGate(SysctrlPeripheralAdcBgr, TRUE);
    Bgr_BgrEnable();        ///< 开启BGR
    ///< ADC 初始化配置
    stcAdcCfg.enAdcMode         = AdcScanMode;              ///<采样模式-扫描
    stcAdcCfg.enAdcClkDiv       = AdcMskClkDiv1;            ///<采样分频-1
    stcAdcCfg.enAdcSampCycleSel = AdcMskSampCycle8Clk;      ///<采样周期数-8
    stcAdcCfg.enAdcRefVolSel    = AdcMskRefVolSelAVDD;      ///<参考电压选择-VCC
    stcAdcCfg.enAdcOpBuf        = AdcMskBufDisable;         ///<OP BUF配置-关
    stcAdcCfg.enInRef           = AdcMskInRefDisable;       ///<内部参考电压使能-关
    stcAdcCfg.enAdcAlign        = AdcAlignRight;            ///<转换结果对齐方式-右
    Adc_Init(&stcAdcCfg);



stc_adc_sqr_cfg_t          stcAdcSqrCfg;

    DDL_ZERO_STRUCT(stcAdcSqrCfg);

    ///< 顺序扫描模式功能及通道配置
    ///< 注意:扫描模式下,当配置转换次数为n时,转换通道的配置范围必须为[SQRCH(0)MUX,SQRCH(n-1)MUX]
    stcAdcSqrCfg.bSqrDmaTrig = FALSE;
    stcAdcSqrCfg.enResultAcc = AdcResultAccEnable;
    stcAdcSqrCfg.u8SqrCnt    = 2;
    Adc_SqrModeCfg(&stcAdcSqrCfg);

    Adc_CfgSqrChannel(AdcSQRCH0MUX, AdcExInputCH20);  //PB13
    Adc_CfgSqrChannel(AdcSQRCH1MUX, AdcExInputCH21);  //PB14

    ///< ADC 中断使能
//    Adc_EnableIrq();
//    EnableNvic(ADC_DAC_IRQn, IrqLevel3, TRUE);

    ///< 启动顺序扫描采样
    Adc_SQR_Start();


然后用了一个函数来读取AD采样值
void get_ADC_Value(void)
{
    if(TRUE == Adc_GetIrqStatus(AdcMskIrqSqr))
    {              
        u32AdcRestult0   = Adc_GetSqrResult(AdcSQRCH0MUX);  //获取顺序扫描通道0  TEMP
        u32AdcRestult1   = Adc_GetSqrResult(AdcSQRCH1MUX);  //获取顺序扫描通道1  HUMI     
        Adc_ClrIrqStatus(AdcMskIrqSqr);
    }

}


有没有大神知道我哪里出错了?
谢谢!!
回答 +关注 15
5216人浏览 1人回答问题 分享 举报
1 个回答

您需要登录后才可以回复 登录 | 注册