BearPi-Hi3863 ADC的使用

static void *adc_task(const char *arg)
{
    unused(arg);    //不使用参数
    osal_printk("start adc sample\r\n");    //osal库中的print函数
    uapi_adc_init(ADC_CLOCK_NONE);  //初始化ADC的时钟,这里的ADC_CLOCK_NONE代表了15Khz的采样频率
    uint8_t adc_channel = CONFIG_ADC_CHANNEL;   //定义要采用的ADC的通道,CONFIG_ADC_CHANNEL是由宏定义进行配置的
    uint16_t voltage = 0;   //设置电压值
    uint32_t cnt = 0;   //计数器
    while (cnt++ < CYCLES) {
        adc_port_read(adc_channel, &voltage);   //ADC端口读取电压值并存储到地址
        osal_printk("voltage: %d mv\r\n", voltage);
        osal_msleep(DELAY_10000MS);
    }
    /* 当前测量的电压值和实际值可能有较大差别,请确认是否有分压电阻,如果有分压电阻,则差别符合预期 */
    uapi_adc_deinit();

    return NULL;
}

这是对ADC的任务进行的配置,用于后面进行任务管理。
这是一种ADC的配置任务,明天我们说另一种ADC任务的配置。

posted @ 2025-06-15 23:50  邦九o  阅读(59)  评论(0)    收藏  举报