完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ret = adc_digi_controller_config(&dig_cfg);
^~~~~~~~~~~~~~~~~~~~~~~~~~ ../main/adc_dma_example_main.c: At top level: ../main/adc_dma_example_main.c:47:36: error: unknown type name 'adc_digi_output_data_t' static bool check_valid_data(const adc_digi_output_data_t *data) ^~~~~~~~~~~~~~~~~~~~~~ ../main/adc_dma_example_main.c: In function 'check_valid_data': ../main/adc_dma_example_main.c:49:35: error: request for member 'type2' in something not a structure or union const unsigned int unit = data->type2.unit; ^~ ../main/adc_dma_example_main.c:51:13: error: request for member 'type2' in something not a structure or union if (data->type2.channel >= SOC_ADC_CHANNEL_NUM(unit)) return false; ^~ ../main/adc_dma_example_main.c: In function 'continuous_read': ../main/adc_dma_example_main.c:68:5: error: implicit declaration of function 'adc_digi_start' [-Werror=implicit-function-declaration] adc_digi_start(); ^~~~~~~~~~~~~~ ../main/adc_dma_example_main.c:72:15: error: implicit declaration of function 'adc_digi_read_bytes' [-Werror=implicit-function-declaration] ret = adc_digi_read_bytes(result, TIMES, &ret_num, ADC_MAX_DELAY); ^~~~~~~~~~~~~~~~~~~ ../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 ../main/adc_dma_example_main.c:72:60: note: each undeclared identifier is reported only once for each function it appears in ../main/adc_dma_example_main.c:74:13: error: unknown type name 'adc_digi_output_data_t' adc_digi_output_data_t *p = (void*)&result[i]; ^~~~~~~~~~~~~~~~~~~~~~ ../main/adc_dma_example_main.c:76:45: error: request for member 'type2' in something not a structure or union printf("ADC%d_CH%d: %xn", p->type2.unit+1, p->type2.channel, p->type2.data); ^~ ../main/adc_dma_example_main.c:76:62: error: request for member 'type2' in something not a structure or union printf("ADC%d_CH%d: %xn", p->type2.unit+1, p->type2.channel, p->type2.data); ^~ ../main/adc_dma_example_main.c:76:80: error: request for member 'type2' in something not a structure or union printf("ADC%d_CH%d: %xn", p->type2.unit+1, p->type2.channel, p->type2.data); ^~ ../main/adc_dma_example_main.c:78:54: error: request for member 'type2' in something not a structure or union printf("Invalid data [%d_%d_%x]n", p->type2.unit+1, p->type2.channel, p->type2.data); ^~ ../main/adc_dma_example_main.c:78:71: error: request for member 'type2' in something not a structure or union printf("Invalid data [%d_%d_%x]n", p->type2.unit+1, p->type2.channel, p->type2.data); ^~ ../main/adc_dma_example_main.c:78:89: error: request for member 'type2' in something not a structure or union printf("Invalid data [%d_%d_%x]n", p->type2.unit+1, p->type2.channel, p->type2.data); ^~ ../main/adc_dma_example_main.c:84:5: error: implicit declaration of function 'adc_digi_stop'; did you mean 'esp_timer_stop'? [-Werror=implicit-function-declaration] adc_digi_stop(); ^~~~~~~~~~~~~ esp_timer_stop ../main/adc_dma_example_main.c:85:11: error: implicit declaration of function 'adc_digi_deinitialize' [-Werror=implicit-function-declaration] ret = adc_digi_deinitialize(); ^~~~~~~~~~~~~~~~~~~~~ ../main/adc_dma_example_main.c: In function 'single_read': ../main/adc_dma_example_main.c:97:23: error: 'ADC_WIDTH_BIT_DEFAULT' undeclared (first use in this function); did you mean 'ADC_WIDTH_BIT_12'? adc1_config_width(ADC_WIDTH_BIT_DEFAULT); ^~~~~~~~~~~~~~~~~~~~~ ADC_WIDTH_BIT_12 cc1: some warnings being treated as errors [849/902] Linking CXX static library esp-idf/wpa_supplicant/libwpa_supplicant.a ninja: build stopped: subcommand failed. ninja failed with exit code 1 |
|
相关推荐
1个回答
|
|
看起来你在尝试使用ESP-IDF的ADC DMA功能来读取多个通道的值,但是在编译过程中遇到了一些问题。根据你提供的错误信息,问题主要出现在两个方面:
1. `adc_digi_controller_config`函数调用错误。 2. `adc_digi_output_data_t`类型未定义。 让我们逐一解决这些问题。 ### 1. `adc_digi_controller_config`函数调用错误 错误信息提示你在调用`adc_digi_controller_config`函数时出现了问题。这可能是因为你使用了错误的语法或者参数。请确保你已经包含了正确的头文件,并且正确地初始化了`adc_digi_config_t`结构体。例如: ```c #include "driver/adc.h" adc_digi_config_t dig_cfg = { .conversation_mode = ADC_DIGI_CONV_SINGLE_UNIT_1, .sample_freq_hz = 1000, .adc1_data_id = 1, .adc2_data_id = 2, }; esp_err_t ret = adc_digi_controller_config(&dig_cfg); ``` ### 2. `adc_digi_output_data_t`类型未定义 这个错误表明编译器找不到`adc_digi_output_data_t`类型的定义。这可能是因为你缺少了相应的头文件。通常,这个类型定义在`driver/adc.h`中。确保你已经包含了这个头文件: ```c #include "driver/adc.h" ``` 如果包含了头文件后仍然出现问题,可能是因为你的ESP-IDF版本不支持这个类型。请检查你的ESP-IDF版本是否是最新的,或者查看相关的文档和示例代码以确保你的使用是正确的。 ### 3. 检查示例代码 如果你仍然遇到问题,可以尝试查看ESP-IDF的官方示例代码,以确保你的代码结构和调用是正确的。ESP-IDF的示例代码通常可以在以下路径找到: ``` your_esp_idf_directory/examples ``` 在这些示例中,你可以找到关于如何正确使用ADC DMA功能的示例。 ### 4. 清理并重新编译 有时候,编译错误可能是由于之前的编译过程中的一些问题导致的。尝试清理你的项目并重新编译: ```bash make clean make ``` 或者如果你使用的是IDE,可以尝试清理项目并重新构建。 希望这些建议能帮助你解决问题。如果问题仍然存在,请提供更多的代码和上下文信息,以便进一步分析。 |
|
|
|
只有小组成员才能发言,加入小组>>
961 浏览 1 评论
552浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
446浏览 5评论
447浏览 4评论
417浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 01:34 , Processed in 0.653480 second(s), Total 49, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号