S32K144之SDK版:ADC模块使用

目录

一,添加ADC模块

二,配置GPIO

三,配置ADC模块参数

四,代码



一,添加ADC模块

二,配置GPIO

三,配置ADC模块参数

 

 

四,代码

#define ADC_VREFH  5.0f  //单片机最大电压
#define ADC_VREFL  0.0f
float g_adcValue;
uint16_t g_adcRawValue;
uint16_t g_adcMax;

///初始化GPIO
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);

///初始化EDMA
EDMA_DRV_Init(&dmaController1_State, &dmaController1_InitConfig0, edmaChnStateArray,edmaChnConfigArray, EDMA_CONFIGURED_CHANNELS_COUNT);
   

///初始化模块  并自动校准
ADC_DRV_ConfigConverter(INST_ADCONV0, &adConv0_ConvConfig0);
ADC_DRV_AutoCalibration(INST_ADCONV0);

//获取通道的函数
float ADC0_ch2_read(void)
{
    g_adcValue = 0.0;
    g_adcRawValue = 0;
    /* 设置ADC通道,并设置软件触发 */
    ADC_DRV_ConfigChan(INST_ADCONV0, 0u, &adConv0_ChnConfig0);
     /* 等待转换完成 */
    ADC_DRV_WaitConvDone(INST_ADCONV0);
     /* 获取ADC量 */
    ADC_DRV_GetChanResult(INST_ADCONV0,0u,&g_adcRawValue);
    /* 转换数值为电压 */
    g_adcValue =(((float) g_adcRawValue) /g_adcMax)*(ADC_VREFH - ADC_VREFL);
    return g_adcValue;
}
float ADC0_ch3_read(void)
{
    g_adcValue = 0.0;
    g_adcRawValue = 0;
    /* 设置ADC通道,并设置软件触发 */
    ADC_DRV_ConfigChan(INST_ADCONV0, 0u, &adConv0_ChnConfig1);
     /* 等待转换完成 */
    ADC_DRV_WaitConvDone(INST_ADCONV0);
     /* 获取ADC量 */
    ADC_DRV_GetChanResult(INST_ADCONV0,0u,&g_adcRawValue);
    /* 转换数值为电压 */
    g_adcValue =(((float) g_adcRawValue) /g_adcMax)*(ADC_VREFH - ADC_VREFL);
    return g_adcValue;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值