这里配置ADC的衰减、通道、输出单元和输出宽度,目的是DMA从ADC按钮中获取每一个按键的电压值,并存入相对应的缓冲区。 adc_digi_read_bytes(result, TIMES, &ret_num, 3000 ); 1. 这里为从DMA读取值,然后进行输出,其中参数的意思为: ADC读取的缓冲区、ADC读取的预期数据长度、ADC读取的实际长度、等待时间; 三...
) { adc_digi_read_bytes(result, TIMES, &ret_num, ADC_MAX_DELAY); for (int i = 0; i < ret_num; i += ADC_RESULT_BYTE) { adc_digi_output_data_t *p = (void *)&result[i]; if (check_valid_data(p)) { if (((p->type2.unit + ...
adc_oneshot_unit_ctx_t *units[SOC_ADC_PERIPH_NUM];:这是一个指向adc_oneshot_unit_ctx_t类型的指针数组,用于存储ADC单元的上下文信息。SOC_ADC_PERIPH_NUM是一个宏定义,表示ADC外设的数量。 int apb_periph_ref_cnts;:这是一个整型变量,用于记录使用APB_SARADC外设的ADC单触发模式芯片的引用计数。 看这个...
continuous_adc_init(adc1_chan_mask, adc2_chan_mask, channel, sizeof(channel) / sizeof(adc_channel_t)); adc_digi_start(); while(1) { adc_digi_read_bytes(result, TIMES, &ret_num, ADC_MAX_DELAY); for (int i = 0; i < ret_num; i += ADC_RESULT_BYTE) { adc_digi_output_data...
../main/adc_dma_example_main.c:72:60: error: 'ADC_MAX_DELAY' undeclared (first use in this function); did you mean 'portMAX_DELAY'? ret = adc_digi_read_bytes(result, TIMES, &ret_num, ADC_MAX_DELAY); ^~~~ portMAX_DELAY ...
continuous_read(NULL); 函数,测试结果如下: 1.2 单次采样 单次采样比较简单,也是直接在上面的样例中修改,下面直接上修改后的测试代码: static void single_read(void *arg) { // esp_err_t ret; // int adc1_reading[3] = {0xcc}; int adc1_reading[1] = {0xcc}; ...
But only support ADC1 using DMA mode #define SOC_ADC_DIGI_MIN_BITWIDTH (9) #define SOC_ADC_DIGI_MAX_BITWIDTH (12) #define SOC_ADC_DIGI_RESULT_BYTES (2) #define SOC_ADC_DIGI_DATA_BYTES_PER_CONV (4) /*!< F_sample = F_digi_con / 2 / interval. F_digi_con = 5M for now. ...
CONFIG_SOC_ADC_ATTEN_NUM=4 CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2 CONFIG_SOC_ADC_PATT_LEN_MAX=16 CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=9 CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 CONFIG_SOC_ADC_DIGI_RESULT_BYTES=2 CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 CONFIG_SOC_ADC_DIGI_MONITOR...
#define CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH 12 #define CONFIG_SOC_ADC_DIGI_RESULT_BYTES 4 #define CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV 4 #define CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH 83333 #define CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW 611 #define CONFIG_SOC_ADC_RTC_MIN_BITWIDTH 12 #...
esp_err_t adc_digi_read_bytes(uint8_t *buf, uint32_t length_max, uint32_t *out_length, uint32_t timeout_ms); All the data read is zero, even when using the official example, and the related functions return ESP_OK 1 3 replies P-R-O-C-H-Y Mar 4, 2022 Maintainer Thank...