本帖最后由 eltonchang2001 于 2022-11-9 14:04 编辑
在ESK32-30519 开发板上配置有12位的ADC,并可使用扩展板上的电位器来提供相应的模拟信号,其电路如图1所示。 图1 模拟信号输出
在例程中,数据采集的结果是有串口来输出的其形式如图2和图3所示。 图2 悬空态采集 图3 接地采集
既然开发板上配有数码管,那就可以用它来实现数值的显示,其效果如图4所示。 图4 数值显示
实现图4效果的主程序如下:
int main(void)
{
u8CharIndex=0;
u8CharSize = sizeof(NumberChar);
u16 u;
GPIO_Configuration();
LEDC_Configuration();
RETARGET_Configuration();
ADC_Configuration();
ADC_Cmd(HTCFG_ADC_PORT, ENABLE);
ADC_SoftwareStartConvCmd(HTCFG_ADC_PORT, ENABLE);
while (1)
{
if(gIsUpdateChar)
{
if (gADC_SingleEndOfConversion)
{
u=gPotentiometerLevel*3300/4096;
LEDC_SetData(HTCFG_LEDC_COM_D1, (NumberChar[u%10000/1000])|0x02);
LEDC_SetData(HTCFG_LEDC_COM_D2, NumberChar[u%1000/100]);
LEDC_SetData(HTCFG_LEDC_COM_D3, NumberChar[u%100/10]);
LEDC_SetData(HTCFG_LEDC_COM_D4, NumberChar[u%10]);
}
gIsUpdateChar = FALSE;
}
}
}
图5 模拟信号检测
注:为了便于识读,这里是将检测的模拟信号值转换为对应的电压来显示,其最高电压为3.3伏,最低电压为0伏,通过电位器可动态调整检测信号的大小。
|