本帖最后由 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伏,通过电位器可动态调整检测信号的大小。
|