esp-iot-solution icon indicating copy to clipboard operation
esp-iot-solution copied to clipboard

implicit declaration of function 'i2c_master_get_bus_handle' (AEGHB-1022)

Open lh0941517 opened this issue 8 months ago • 1 comments

Answers checklist.

  • [x] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • [x] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • [x] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.

5.3

Espressif SoC revision.

esp32

Operating System used.

Windows

How did you build your project?

Command line with Make

If you are using Windows, please specify command line type.

PowerShell

Development Kit.

esp32-pico-d4

Steps to reproduce.

当我添加esp_simplefoc组件并编译的时候,发现拉到的i2c_bus版本是1.3,当我将例程代码复制到我的.cpp中后,编译发现报错i2c_master_get_bus_handle函数未定义,我全局搜索了,确实找不到这个函数。当我在i2c_bus组件中屏蔽这一段代码后,编译通过了

Build Logs.

Bootloader binary size 0x6880 bytes. 0x780 bytes (7%) free.
[967/1020] Building C object esp-idf/espressif__i2c_bus/CMakeFiles/__idf_espressif__i2c_bus.dir/i2c_bus_v2.c.obj
FAILED: esp-idf/espressif__i2c_bus/CMakeFiles/__idf_espressif__i2c_bus.dir/i2c_bus_v2.c.obj
ccache C:\Users\lh094\esp\tool_5.3\tools\xtensa-esp-elf\esp-13.2.0_20240530\xtensa-esp-elf\bin\xtensa-esp32-elf-gcc.exe -DESP_PLATFORM -DIDF_VER=\"v5.3.1-244-g4d0db7045d\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -IC:/Users/lh094/Desktop/SynologyDrive/Project/foc_control/build/config -IC:/Users/lh094/Desktop/SynologyDrive/Project/foc_control/managed_components/espressif__i2c_bus/include -IC:/Users/lh094/Desktop/SynologyDrive/Project/foc_control/managed_components/espressif__i2c_bus/private_include -IC:/Users/lh094/esp/v5.3/esp-idf/components/newlib/platform_include -IC:/Users/lh094/esp/v5.3/esp-idf/components/freertos/config/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/freertos/config/include/freertos -IC:/Users/lh094/esp/v5.3/esp-idf/components/freertos/config/xtensa/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/freertos/FreeRTOS-Kernel/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos -IC:/Users/lh094/esp/v5.3/esp-idf/components/freertos/esp_additions/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_hw_support/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_hw_support/include/soc -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_hw_support/include/soc/esp32 -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_hw_support/dma/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_hw_support/ldo/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_hw_support/port/esp32/. -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_hw_support/port/esp32/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/heap/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/log/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/soc/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/soc/esp32 -IC:/Users/lh094/esp/v5.3/esp-idf/components/soc/esp32/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/hal/platform_port/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/hal/esp32/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/hal/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_rom/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_rom/include/esp32 -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_rom/esp32 -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_common/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_system/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_system/port/soc -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_system/port/include/private -IC:/Users/lh094/esp/v5.3/esp-idf/components/xtensa/esp32/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/xtensa/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/xtensa/deprecated_include -IC:/Users/lh094/esp/v5.3/esp-idf/components/lwip/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/lwip/include/apps -IC:/Users/lh094/esp/v5.3/esp-idf/components/lwip/include/apps/sntp -IC:/Users/lh094/esp/v5.3/esp-idf/components/lwip/lwip/src/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/lwip/port/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/lwip/port/freertos/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/lwip/port/esp32xx/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/lwip/port/esp32xx/include/arch -IC:/Users/lh094/esp/v5.3/esp-idf/components/lwip/port/esp32xx/include/sys -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_i2c/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/driver/deprecated -IC:/Users/lh094/esp/v5.3/esp-idf/components/driver/i2c/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/driver/touch_sensor/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/driver/twai/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/driver/touch_sensor/esp32/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_pm/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_ringbuf/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_gpio/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_pcnt/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_gptimer/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_spi/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_mcpwm/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_ana_cmpr/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_i2s/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_sdmmc/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/sdmmc/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_sdspi/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_sdio/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_dac/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_rmt/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_tsens/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_sdm/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_uart/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/vfs/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_ledc/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_parlio/include -IC:/Users/lh094/esp/v5.3/esp-idf/components/esp_driver_usb_serial_jtag/include -mlongcalls -Wno-frame-address  -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -fdiagnostics-color=always -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -Og -fno-shrink-wrap -fmacro-prefix-map=C:/Users/lh094/Desktop/SynologyDrive/Project/foc_control=. -fmacro-prefix-map=C:/Users/lh094/esp/v5.3/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -DI2C_BUS_VER_MAJOR=1 -DI2C_BUS_VER_MINOR=3 -DI2C_BUS_VER_PATCH=0 -MD -MT esp-idf/espressif__i2c_bus/CMakeFiles/__idf_espressif__i2c_bus.dir/i2c_bus_v2.c.obj -MF esp-idf\espressif__i2c_bus\CMakeFiles\__idf_espressif__i2c_bus.dir\i2c_bus_v2.c.obj.d -o esp-idf/espressif__i2c_bus/CMakeFiles/__idf_espressif__i2c_bus.dir/i2c_bus_v2.c.obj -c C:/Users/lh094/Desktop/SynologyDrive/Project/foc_control/managed_components/espressif__i2c_bus/i2c_bus_v2.c
C:/Users/lh094/Desktop/SynologyDrive/Project/foc_control/managed_components/espressif__i2c_bus/i2c_bus_v2.c: In function 'i2c_bus_create':
C:/Users/lh094/Desktop/SynologyDrive/Project/foc_control/managed_components/espressif__i2c_bus/i2c_bus_v2.c:103:9: error: implicit declaration of function 'i2c_master_get_bus_handle' [-Werror=implicit-function-declaration]        
  103 |     if (i2c_master_get_bus_handle(port, &s_i2c_bus[port].bus_handle) == ESP_OK) {
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1.exe: some warnings being treated as errors
[984/1020] Building CXX object esp-idf/espressif__arduino-foc/CMakeFiles/__idf_espressif__arduino-foc.dir/src/BLDCMotor.cpp.obj
ninja: build stopped: subcommand failed.

More Information.

No response

lh0941517 avatar Mar 20 '25 03:03 lh0941517

Hi @lh0941517 . May I ask which commit of release V5.3 you are using, or is it a certain tag of version 5.3? i2c_master_get_bus_handle is a function provided by esp_driver_i2c. You can find it here. I tried to compile on the latest release V5.3 and didn't find any compilation errors.

YanKE01 avatar Mar 24 '25 02:03 YanKE01