Neptune开发板 ADC使用获取电压 原创 精华

发布于 2021-9-25 21:41
浏览
5收藏

前言:
有朋友问Neptune开发板ADC如何使用,所以我去查看一下openHarmong-IoT API发现openHarmong-1.1版本中IoT取消了ADC 的API,所以只能使用W800 SDK中ADC API去操作ADC使用获取电压。
本文参考:W800 ADC采集电压值

1、环境准备
1.1 开发环境、编译环境搭建,参考官方文档,参考链接如下:
Neptune开发板的环境搭建及使用
2、材料准备
2.1、Neptune HarmonyOS物联网 IOT模组
3、相关知识介绍:引用自参考文章
W800芯片14 脚(PA1)及15 脚(PA4)脚可以作为普通ADC 使用,输入电压范围0~2.4V。
Neptune开发板 ADC使用获取电压-开源基础软件社区
高于2.4V 外部需做分压处理后才可进入ADC 接口。为提高精度,R1 和R2 需使用高精度电阻。
根据Sensor 输出值选择合适的R1,R2 电阻值分压。(这里是理论上ADC 获取值,我使用2个1k电阻分压)
Neptune开发板 ADC使用获取电压-开源基础软件社区
4、编写代码:
adc_sample.c

#include <stdio.h>
#include <unistd.h>

#include "ohos_init.h"
#include "cmsis_os2.h"
#include "wm_adc.h"
#include "wm_gpio_afsel.h"

static void ADC_Demo_Entry(void)
{
  int voltage=0;
  wm_adc_config(0);//ADC->PA1
  while (1)
  {
    voltage=adc_get_inputVolt(0);//获取ADC值
    osDelay(500);
    if(voltage<0)
    {
        voltage=0-voltage;
        printf("%d(mV)--%d.%03d(V)\r\n\n",voltage,voltage/1000,voltage%1000);
    }
    else
    {
        printf("%d(mV)--%d.%03d(V)\r\n\n",voltage,voltage/1000,voltage%1000);
    }
  }
}

static void ADC_Demo(void)
{
    osThreadAttr_t attr;

    attr.name = "ADC_Demo_Entry";
    attr.attr_bits = 0U;
    attr.cb_mem = NULL;
    attr.cb_size = 0U;
    attr.stack_mem = NULL;
    attr.stack_size = 4096;
    attr.priority = 24;

    if (osThreadNew(ADC_Demo_Entry, NULL, &attr) == NULL) {
        printf("[ADCDemo] Falied to create ADC_Demo_Entry!\n");
    }
}

APP_FEATURE_INIT(ADC_Demo);

BUILD.gn

static_library("adc_sample") {
    sources = [
        "adc_sample.c",
    ]

    include_dirs = [
        "//utils/native/lite/include",
        "//kernel/liteos_m/kal/cmsis",
        "//device/winnermicro/neptune/sdk_liteos/platform/inc",
    ]
}

6、编译,烧录,测试
Neptune开发板 ADC使用获取电压-开源基础软件社区
Neptune开发板 ADC使用获取电压-开源基础软件社区

5、总结
通过对ADC操作发现W800的接口的复用功能对开发者有些不友好,PA1与PA4既是唯一I2C接口(PB19/PB20要用作串口0输出)同时又是两个唯一ADC接口,这样会使ADC的功能非常的鸡肋,因为我们不可能放弃I2C功能不用。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2021-9-25 21:41:48修改
7
收藏 5
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐