#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <math.h>
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "wifiiot_gpio_ex.h"
#include "wifiiot_errno.h"
#include "wifiiot_adc.h"
#define ADC_TASK_STACK_SIZE 1024 * 8
#define ADC_TASK_PRIO 24
/***** 获取电压值函数 *****/
static float GetVoltage(void)
{
unsigned int ret;
unsigned short data;
//第一个参数为打开的ADC通道号,第二个参数是获取后数据的存放地址,第三个参数是采样多少次后再求平均获取数值,第四个参数是电源模式,第五个参数是计数时间
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.8 * 4 / 4096.0;
}
static void ADCTask(void)
{
float voltage;
//上拉,让按键未按下时GPIO_11保持高电平状态;第一个参数是GPIO号,第二个参数是该GPIO是低电平还是高电平
IoSetPull(WIFI_IOT_IO_
小熊派第三次:手册查询和ADC深入使用
最新推荐文章于 2024-02-27 22:08:31 发布
本文介绍了如何在单片机中利用ADC进行电压值测量。首先,通过查阅芯片手册确定ADC通道和GPIO口。接着,创建一个获取电压值的浮点函数,调用AdcRead函数设定参数。然后,设置GPIO口的工作状态,并运用IoSetPull函数进行电平配置。最后,通过主入口函数实现整个功能,读取并打印电压值。
摘要由CSDN通过智能技术生成