Bearpi开发板HarmonyOS之ADC采样

26 篇文章 1 订阅

wifiiot_adc.h接口简介

在这里插入图片描述

创建任务1秒读取一次ADC

#include <stdio.h>
#include <unistd.h>
#include "ohos_init.h"
#include <string.h>
#include "cmsis_os2.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"
#include "wifiiot_adc.h"
#include "wifiiot_errno.h"


static float get_voltage(void)
{
  unsigned int ret;
  unsigned short data;
  ret = AdcRead(WIFI_IOT_ADC_CHANNEL_5,&data,WIFI_IOT_ADC_EQU_MODEL_8,WIFI_IOT_ADC_CUR_BAIS_DEFAULT,0xff);
  if (ret != WIFI_IOT_SUCCESS) 
  {
    printf("ADC Read Fail\n");
  }
  return (float)data*1.8f*4/4096;
}

static void adc_func(void)
{
  
    GpioInit();
    IoSetPull(WIFI_IOT_IO_NAME_GPIO_11,WIFI_IOT_IO_PULL_UP);
     float voltage;
    
     
      while(1)
      {
         voltage = get_voltage();
         printf("voltage:%.3fV\n", voltage);

         osDelay(100);
       
      }
}

static void my_led_example(void)
{
   
    
     osThreadAttr_t attr;
     attr.attr_bits = 0;
     attr.name = "adc";
     attr.cb_mem = NULL;
     attr.cb_size = 0;
     attr.priority = 24;
     attr.stack_size = 1024*8;

     if(osThreadNew((osThreadFunc_t)adc_func,NULL,&attr) == NULL)
     {
        printf("Falied to create adc_func!\n");
    }
}

SYS_RUN(my_led_example);
  • 运行效果,通过按键1改变电压值
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风雨依依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值