打印
[技术问答]

关于HC32L130 单通道ADC采样的一个小小疑问?

[复制链接]
691|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 qjp1988113 于 2020-9-18 14:27 编辑

最近做个项目,选用的HC32L130。在调试官方的ADC DEMO,串口打印出结果观察。程序ADC配置:
void AIN0_AdcInit(void)
{
    stc_adc_cfg_t              stcAdcCfg;

    DDL_ZERO_STRUCT(stcAdcCfg);
   
    ///< 开启ADC/BGR 外设时钟
    Sysctrl_SetPeripheralGate(SysctrlPeripheralAdcBgr, TRUE);
   
    Bgr_BgrEnable();        ///< 开启BGR
   
    ///< ADC 初始化配置
    stcAdcCfg.enAdcMode         = AdcSglMode;               ///<采样模式-单次
    stcAdcCfg.enAdcClkDiv       = AdcMskClkDiv1;            ///<采样分频-1
    stcAdcCfg.enAdcSampCycleSel = AdcMskSampCycle12Clk;     ///<采样周期数-12
    stcAdcCfg.enAdcRefVolSel    = AdcMskRefVolSelInBgr2p5;  ///<参考电压选择-内部2.5V
    stcAdcCfg.enAdcOpBuf        = AdcMskBufDisable;         ///<OP BUF配置-关
    stcAdcCfg.enInRef           = AdcMskInRefEnable;        ///<内部参考电压使能-开
    stcAdcCfg.enAdcAlign        = AdcAlignRight;            ///<转换结果对齐方式-右
    Adc_Init(&stcAdcCfg);
}

///< ADC 单次扫描模式 配置
void AIN0_AdcSglCfg(void)
{
    ///< ADC 采样通道配置
    Adc_CfgSglChannel(AdcExInputCH0);
   
    ///< ADC 中断使能
    Adc_EnableIrq();
    EnableNvic(ADC_IRQn, IrqLevel3, TRUE);
   
    ///< 启动单次转换采样
    //Adc_SGL_Start();   

}
main里面一直输出结果,把AIN0引脚接GND时,偶尔会出来个3mv,好奇怪这个3.6MV是如何来的。
读出的ADC值u32AdcRestult 转换成mv: u32AdcRestult*1000*2.5/4095
即便 u32AdcRestult为1 ,那换算出的电压为 0.61mv,即最大1个单位的精度为0.61mv。
那偶尔出现的3.6mv,也就是有6个最小单位的波动?不知道是不是我硬件的电路的地不好?
真奇怪?



使用特权

评论回复
沙发
amychen1234| | 2020-9-19 16:25 | 只看该作者
我司有FAE可以协助处理,可以加VX 13631694446

使用特权

评论回复
板凳
martinhu| | 2020-9-21 10:29 | 只看该作者
stcAdcCfg.enAdcClkDiv       = AdcMskClkDiv1;            ///<采样分频-1
这个分频改大一点试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

111

主题

627

帖子

2

粉丝