目录
一,添加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;
}