梅科尔工作室-IoT-南向开发第五次培训笔记
  bRXgJG2oCGQW 2023年11月02日 30 0

ADC API分析

unsigned int IoTAdcRead(unsigned int channel, unsigned short *data, IotAdcEquModelSel equModel, IotAdcCurBais curBais, unsigned short rstCnt);
参数说明
    channel :表示ADC通道
    data :表示指向存储读取数据的地址的指针
    equModel :表示平均算法的次数
    curBais :表示模拟功率控制模式
    rstCnt :指示从重置到转换开始的时间计数。一次计数等于334纳秒。值的范围必须从0到0xFF

引脚分析

使用板载用户按键F1来模拟GPIO口电压的变化。GPIO_11对应的是ADC Channel 5 ,需要编写软件去读取ADC Channel 5的电压,程序设计时先将GPIO_11上拉,使GPIO_11的电压一直处于高电平,当按键按下时GPIO_11接地,此时GPIO_11的电压变为 0 V。

梅科尔工作室-IoT-南向开发第五次培训笔记_参数说明

主要代码

static float GetVoltage(void)
{
unsigned int ret;
unsigned short data;
    ret = IoTAdcRead(ADC_CHANNEL, &data, IOT_ADC_EQU_MODEL_8, IOT_ADC_CUR_BAIS_DEFAULT, 0xff);
if (ret != IOT_SUCCESS) {
printf("ADC Read Fail\n");
    }
return (float)data * ADC_VREF_VOL * ADC_COEFFICIENT / ADC_RATIO;
}
该函数通过使用IoTAdcRead()函数来读取 `ADC_CHANNEL_5` 的数值存储在data中, `IOT_ADC_EQU_MODEL_8` 表示8次平均算法模式,`IOT_ADC_CUR_BAIS_DEFAULT` 表示默认的自动识别模式,最后通过 `data * 1.8 * 4 / 4096.0` 计算出实际的电压值。

使用ADC读取GPIO的电压值实践

梅科尔工作室-IoT-南向开发第五次培训笔记_读取数据_02

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

bRXgJG2oCGQW