发新帖我要提问
12
返回列表
打印
[综合信息]

HC 32F003 ADC操作函数

[复制链接]
楼主: gaoke231
手机看帖
扫描二维码
随时随地手机跟帖
21
gaoke231|  楼主 | 2020-3-25 21:09 | 只看该作者 回帖奖励 |倒序浏览
获取累加采样值
en_result_t Adc_GetAccResult(uint32_t* pu32AdcAccResult)
{
    if (NULL == pu32AdcAccResult)
    {
        return ErrorInvalidParameter;
    }

    *pu32AdcAccResult = M0P_ADC->RESULT_ACC_f.RESULT_ACC;

    return Ok;
}

使用特权

评论回复
22
gaoke231|  楼主 | 2020-3-25 21:10 | 只看该作者
清零累加采样值
void Adc_ClrAccResult(void)
{
    M0P_ADC->CR1_f.RACC_CLR = 0u;
}

使用特权

评论回复
23
gaoke231|  楼主 | 2020-3-25 21:11 | 只看该作者
获取扫描采样模式下指定通道的采样值
en_result_t Adc_GetScanResult(uint8_t u8Channel, uint16_t* pu16AdcResult)
{
    if (NULL == pu16AdcResult)
    {
        return ErrorInvalidParameter;
    }

    switch (u8Channel)
    {
        case AdcExInputCH0:
            *pu16AdcResult = M0P_ADC->RESULT0_f.RESULT0;
            break;
        case AdcExInputCH1:
            *pu16AdcResult = M0P_ADC->RESULT1_f.RESULT1;
            break;
        case AdcExInputCH2:
            *pu16AdcResult = M0P_ADC->RESULT2_f.RESULT2;
            break;
        case AdcExInputCH3:
            *pu16AdcResult = M0P_ADC->RESULT3_f.RESULT3;
            break;
        case AdcExInputCH4:
            *pu16AdcResult = M0P_ADC->RESULT4_f.RESULT4;
            break;
        case AdcExInputCH5:
            *pu16AdcResult = M0P_ADC->RESULT5_f.RESULT5;
            break;
        case AdcExInputCH6:
            *pu16AdcResult = M0P_ADC->RESULT6_f.RESULT6;
            break;
        case AdcExInputCH7:
            *pu16AdcResult = M0P_ADC->RESULT7_f.RESULT7;
            break;
        default:
            return ErrorInvalidParameter;
    }
    return Ok;
}

使用特权

评论回复
24
gaoke231|  楼主 | 2020-3-25 21:11 | 只看该作者
获取ch8的采样值
en_result_t Adc_GetCH8Result(uint16_t* pu16AdcResult)
{  
    if (NULL == pu16AdcResult)
    {
        return ErrorInvalidParameter;
    }   
    *pu16AdcResult = M0P_ADC->RESULT8_f.RESULT8;
    return Ok;   
}

使用特权

评论回复
25
gaoke231|  楼主 | 2020-3-25 21:12 | 只看该作者
设置ADC参考电压
en_result_t Adc_SetVref(en_adc_ref_vol_sel_t enAdcRefVolSel)
{
    if (enAdcRefVolSel > RefVolSelAVDD)
    {
        return ErrorInvalidParameter;
    }

    M0P_ADC->CR0_f.SREF = enAdcRefVolSel;
    return Ok;
}

使用特权

评论回复
26
zhamatu| | 2020-3-26 22:57 | 只看该作者
支持下,谢谢分享!就是解释再详细点就好了。

使用特权

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

本版积分规则