> 文档中心 > Bearpi开发板HarmonyOS之ADC采样

Bearpi开发板HarmonyOS之ADC采样


wifiiot_adc.h接口简介

Bearpi开发板HarmonyOS之ADC采样

创建任务1秒读取一次ADC

#include #include #include "ohos_init.h"#include #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改变电压
    在这里插入图片描述

China香烟网