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任务的配置。

浙公网安备 33010602011771号