小熊派第三次:手册查询和ADC深入使用

本文介绍了如何在单片机中利用ADC进行电压值测量。首先,通过查阅芯片手册确定ADC通道和GPIO口。接着,创建一个获取电压值的浮点函数,调用AdcRead函数设定参数。然后,设置GPIO口的工作状态,并运用IoSetPull函数进行电平配置。最后,通过主入口函数实现整个功能,读取并打印电压值。
摘要由CSDN通过智能技术生成
#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_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值