对于ADC采集 程序源码如下:1 /* ADC1 Example 2 3 This example code is in the Public Domain (or CC0 licensed, at your option.) 4 5 Unless required by applicable law or agreed to in writing, this 6 software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 7 CONDITIONS OF ANY KIND, either express or implied. 8 */ 9 #include <stdio.h> 10 #include <string.h> 11 #include <stdlib.h> 12 #include "freertos/FreeRTOS.h" 13 #include "freertos/task.h" 14 #include "freertos/queue.h" 15 #include "driver/gpio.h" 16 #include "driver/adc.h" 17 18 #define ADC1_TEST_CHANNEL (4) 19 20 void adc1task(void* arg) 21 { 22 // initialize ADC 23 adc1_config_width(ADC_WIDTH_12Bit); 24 adc1_config_channel_atten(ADC1_TEST_CHANNEL,ADC_ATTEN_11db); 25 while(1){ 26 printf("The adc1 value:%d\n",adc1_get_voltage(ADC1_TEST_CHANNEL)); 27 vTaskDelay(1000/portTICK_PERIOD_MS); 28 } 29 } 30 31 void app_main() 32 { 33 xTaskCreate(adc1task, "adc1task", 1024*3, NULL, 10, NULL); 34 } ESP32集成了两个12位SAR(“逐次逼近寄存器”)ADC(模数转换器),并支持18通道(模拟使能引脚)的测量。这些引脚中的一些可用于构建用于测量小型模拟信号的可编程增益放大器。 ADC驱动程序API目前仅支持ADC1(9个通道,连接到GPIO 32-39)。 进行ADC读取需要以所需的精度和注意事项设置ADC,然后调用adc1_get_voltage()来读取通道。 本例程选用adc1task对adc进行初始化设置 (1)adc1_config_width(),设定捕获宽度,其中
程序源码如下;烧写程序后,将GPIO32连接到一个可以改变的电压输出口,打开minicom,观察电压输出值,调节电压,观察输出值变化。 硬件连接如下
minicom输出如下图所示
相关知识:AD转换相关函数API接口
|
|