espressif / esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs.
Apache License 2.0
13.46k stars 7.25k forks source link

invalid conversion from 'int' to 'gpio_num_t' (IDFGH-11461) #12592

Closed stellna closed 2 months ago

stellna commented 10 months ago

Answers checklist.

IDF version.

v.5.1.1

Operating System used.

Windows

How did you build your project?

Command line with CMake

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

None

What is the expected behavior?

Project compiles successfully

What is the actual behavior?

Error during the compilation

Steps to reproduce.

  1. This is my github pages. https://github.com/stellna/IOT-camera-learning

  2. trying to take a c files from the main.cpp image

  3. building occurs the error. image

Build or installation Logs.

[1/10] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\Users\whgPd\OneDrive\Desktop\esp-test\camera_test_4\build\bootloader\esp-idf\esptool_py && C:\Users\whgPd\.espressif\python_env\idf5.1_py3.11_env\Scripts\python.exe C:/Users/whgPd/esp/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/build/bootloader/bootloader.bin"
Bootloader binary size 0x6810 bytes. 0x7f0 bytes (7%) free.
[2/8] Building CXX object esp-idf/main/CMakeFiles/__idf_main.dir/main.cpp.obj
FAILED: esp-idf/main/CMakeFiles/__idf_main.dir/main.cpp.obj 
ccache C:\Users\whgPd\.espressif\tools\xtensa-esp32-elf\esp-12.2.0_20230208\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe -DESP_PLATFORM -DIDF_VER=\"v5.1.1\" -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DUNITY_INCLUDE_CONFIG_H -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -IC:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/build/config -IC:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main -IC:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/esp32/components -IC:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/esp32/main/include -IC:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/esp32/components/face-dl -IC:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera -IC:/Users/whgPd/esp/esp-idf/components/newlib/platform_include -IC:/Users/whgPd/esp/esp-idf/components/freertos/FreeRTOS-Kernel/include -IC:/Users/whgPd/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include -IC:/Users/whgPd/esp/esp-idf/components/freertos/esp_additions/include/freertos -IC:/Users/whgPd/esp/esp-idf/components/freertos/esp_additions/include -IC:/Users/whgPd/esp/esp-idf/components/freertos/esp_additions/arch/xtensa/include -IC:/Users/whgPd/esp/esp-idf/components/esp_hw_support/include -IC:/Users/whgPd/esp/esp-idf/components/esp_hw_support/include/soc -IC:/Users/whgPd/esp/esp-idf/components/esp_hw_support/include/soc/esp32 -IC:/Users/whgPd/esp/esp-idf/components/esp_hw_support/port/esp32/. -IC:/Users/whgPd/esp/esp-idf/components/esp_hw_support/port/esp32/private_include -IC:/Users/whgPd/esp/esp-idf/components/heap/include -IC:/Users/whgPd/esp/esp-idf/components/log/include -IC:/Users/whgPd/esp/esp-idf/components/soc/include -IC:/Users/whgPd/esp/esp-idf/components/soc/esp32 -IC:/Users/whgPd/esp/esp-idf/components/soc/esp32/include -IC:/Users/whgPd/esp/esp-idf/components/hal/esp32/include -IC:/Users/whgPd/esp/esp-idf/components/hal/include -IC:/Users/whgPd/esp/esp-idf/components/hal/platform_port/include -IC:/Users/whgPd/esp/esp-idf/components/esp_rom/include -IC:/Users/whgPd/esp/esp-idf/components/esp_rom/include/esp32 -IC:/Users/whgPd/esp/esp-idf/components/esp_rom/esp32 -IC:/Users/whgPd/esp/esp-idf/components/esp_common/include -IC:/Users/whgPd/esp/esp-idf/components/esp_system/include -IC:/Users/whgPd/esp/esp-idf/components/esp_system/port/soc -IC:/Users/whgPd/esp/esp-idf/components/esp_system/port/include/private -IC:/Users/whgPd/esp/esp-idf/components/xtensa/include -IC:/Users/whgPd/esp/esp-idf/components/xtensa/esp32/include -IC:/Users/whgPd/esp/esp-idf/components/lwip/include -IC:/Users/whgPd/esp/esp-idf/components/lwip/include/apps -IC:/Users/whgPd/esp/esp-idf/components/lwip/include/apps/sntp -IC:/Users/whgPd/esp/esp-idf/components/lwip/lwip/src/include -IC:/Users/whgPd/esp/esp-idf/components/lwip/port/include -IC:/Users/whgPd/esp/esp-idf/components/lwip/port/freertos/include -IC:/Users/whgPd/esp/esp-idf/components/lwip/port/esp32xx/include -IC:/Users/whgPd/esp/esp-idf/components/lwip/port/esp32xx/include/arch -IC:/Users/whgPd/esp/esp-idf/components/esp_ringbuf/include -IC:/Users/whgPd/esp/esp-idf/components/efuse/include -IC:/Users/whgPd/esp/esp-idf/components/efuse/esp32/include -IC:/Users/whgPd/esp/esp-idf/components/driver/include -IC:/Users/whgPd/esp/esp-idf/components/driver/deprecated -IC:/Users/whgPd/esp/esp-idf/components/driver/analog_comparator/include -IC:/Users/whgPd/esp/esp-idf/components/driver/dac/include -IC:/Users/whgPd/esp/esp-idf/components/driver/gpio/include -IC:/Users/whgPd/esp/esp-idf/components/driver/gptimer/include -IC:/Users/whgPd/esp/esp-idf/components/driver/i2c/include -IC:/Users/whgPd/esp/esp-idf/components/driver/i2s/include -IC:/Users/whgPd/esp/esp-idf/components/driver/ledc/include -IC:/Users/whgPd/esp/esp-idf/components/driver/mcpwm/include -IC:/Users/whgPd/esp/esp-idf/components/driver/parlio/include -IC:/Users/whgPd/esp/esp-idf/components/driver/pcnt/include -IC:/Users/whgPd/esp/esp-idf/components/driver/rmt/include -IC:/Users/whgPd/esp/esp-idf/components/driver/sdio_slave/include -IC:/Users/whgPd/esp/esp-idf/components/driver/sdmmc/include -IC:/Users/whgPd/esp/esp-idf/components/driver/sigma_delta/include -IC:/Users/whgPd/esp/esp-idf/components/driver/spi/include -IC:/Users/whgPd/esp/esp-idf/components/driver/temperature_sensor/include -IC:/Users/whgPd/esp/esp-idf/components/driver/touch_sensor/include -IC:/Users/whgPd/esp/esp-idf/components/driver/twai/include -IC:/Users/whgPd/esp/esp-idf/components/driver/uart/include -IC:/Users/whgPd/esp/esp-idf/components/driver/usb_serial_jtag/include -IC:/Users/whgPd/esp/esp-idf/components/driver/touch_sensor/esp32/include -IC:/Users/whgPd/esp/esp-idf/components/esp_pm/include -IC:/Users/whgPd/esp/esp-idf/components/mbedtls/port/include -IC:/Users/whgPd/esp/esp-idf/components/mbedtls/mbedtls/include -IC:/Users/whgPd/esp/esp-idf/components/mbedtls/mbedtls/library -IC:/Users/whgPd/esp/esp-idf/components/mbedtls/esp_crt_bundle/include -IC:/Users/whgPd/esp/esp-idf/components/esp_app_format/include -IC:/Users/whgPd/esp/esp-idf/components/bootloader_support/include -IC:/Users/whgPd/esp/esp-idf/components/bootloader_support/bootloader_flash/include -IC:/Users/whgPd/esp/esp-idf/components/esp_partition/include -IC:/Users/whgPd/esp/esp-idf/components/app_update/include -IC:/Users/whgPd/esp/esp-idf/components/esp_mm/include -IC:/Users/whgPd/esp/esp-idf/components/spi_flash/include -IC:/Users/whgPd/esp/esp-idf/components/pthread/include -IC:/Users/whgPd/esp/esp-idf/components/esp_timer/include -IC:/Users/whgPd/esp/esp-idf/components/app_trace/include -IC:/Users/whgPd/esp/esp-idf/components/esp_event/include -IC:/Users/whgPd/esp/esp-idf/components/nvs_flash/include -IC:/Users/whgPd/esp/esp-idf/components/esp_phy/include -IC:/Users/whgPd/esp/esp-idf/components/esp_phy/esp32/include -IC:/Users/whgPd/esp/esp-idf/components/vfs/include -IC:/Users/whgPd/esp/esp-idf/components/esp_netif/include -IC:/Users/whgPd/esp/esp-idf/components/wpa_supplicant/include -IC:/Users/whgPd/esp/esp-idf/components/wpa_supplicant/port/include -IC:/Users/whgPd/esp/esp-idf/components/wpa_supplicant/esp_supplicant/include -IC:/Users/whgPd/esp/esp-idf/components/esp_coex/include -IC:/Users/whgPd/esp/esp-idf/components/esp_wifi/include -IC:/Users/whgPd/esp/esp-idf/components/esp_wifi/wifi_apps/include -IC:/Users/whgPd/esp/esp-idf/components/unity/include -IC:/Users/whgPd/esp/esp-idf/components/unity/unity/src -IC:/Users/whgPd/esp/esp-idf/components/cmock/CMock/src -IC:/Users/whgPd/esp/esp-idf/components/console -IC:/Users/whgPd/esp/esp-idf/components/esp-dl/include -IC:/Users/whgPd/esp/esp-idf/components/esp-dl/include/tool -IC:/Users/whgPd/esp/esp-idf/components/esp-dl/include/typedef -IC:/Users/whgPd/esp/esp-idf/components/esp-dl/include/image -IC:/Users/whgPd/esp/esp-idf/components/esp-dl/include/math -IC:/Users/whgPd/esp/esp-idf/components/esp-dl/include/nn -IC:/Users/whgPd/esp/esp-idf/components/esp-dl/include/tvm -IC:/Users/whgPd/esp/esp-idf/components/esp-dl/include/layer -IC:/Users/whgPd/esp/esp-idf/components/esp-dl/include/detect -IC:/Users/whgPd/esp/esp-idf/components/esp-dl/include/model_zoo -IC:/Users/whgPd/esp/esp-idf/components/http_parser -IC:/Users/whgPd/esp/esp-idf/components/esp-tls -IC:/Users/whgPd/esp/esp-idf/components/esp-tls/esp-tls-crypto -IC:/Users/whgPd/esp/esp-idf/components/esp32-camera/driver/include -IC:/Users/whgPd/esp/esp-idf/components/esp32-camera/conversions/include -IC:/Users/whgPd/esp/esp-idf/components/esp_adc/include -IC:/Users/whgPd/esp/esp-idf/components/esp_adc/interface -IC:/Users/whgPd/esp/esp-idf/components/esp_adc/esp32/include -IC:/Users/whgPd/esp/esp-idf/components/esp_adc/deprecated/include -IC:/Users/whgPd/esp/esp-idf/components/esp_eth/include -IC:/Users/whgPd/esp/esp-idf/components/esp_gdbstub/include -IC:/Users/whgPd/esp/esp-idf/components/esp_hid/include -IC:/Users/whgPd/esp/esp-idf/components/tcp_transport/include -IC:/Users/whgPd/esp/esp-idf/components/esp_http_client/include -IC:/Users/whgPd/esp/esp-idf/components/esp_http_server/include -IC:/Users/whgPd/esp/esp-idf/components/esp_https_ota/include -IC:/Users/whgPd/esp/esp-idf/components/esp_psram/include -IC:/Users/whgPd/esp/esp-idf/components/esp_lcd/include -IC:/Users/whgPd/esp/esp-idf/components/esp_lcd/interface -IC:/Users/whgPd/esp/esp-idf/components/protobuf-c/protobuf-c -IC:/Users/whgPd/esp/esp-idf/components/protocomm/include/common -IC:/Users/whgPd/esp/esp-idf/components/protocomm/include/security -IC:/Users/whgPd/esp/esp-idf/components/protocomm/include/transports -IC:/Users/whgPd/esp/esp-idf/components/esp_local_ctrl/include -IC:/Users/whgPd/esp/esp-idf/components/espcoredump/include -IC:/Users/whgPd/esp/esp-idf/components/espcoredump/include/port/xtensa -IC:/Users/whgPd/esp/esp-idf/components/wear_levelling/include -IC:/Users/whgPd/esp/esp-idf/components/sdmmc/include -IC:/Users/whgPd/esp/esp-idf/components/fatfs/diskio -IC:/Users/whgPd/esp/esp-idf/components/fatfs/vfs -IC:/Users/whgPd/esp/esp-idf/components/fatfs/src -IC:/Users/whgPd/esp/esp-idf/components/idf_test/include -IC:/Users/whgPd/esp/esp-idf/components/idf_test/include/esp32 -IC:/Users/whgPd/esp/esp-idf/components/ieee802154/include -IC:/Users/whgPd/esp/esp-idf/components/json/cJSON -IC:/Users/whgPd/esp/esp-idf/components/mqtt/esp-mqtt/include -IC:/Users/whgPd/esp/esp-idf/components/perfmon/include -IC:/Users/whgPd/esp/esp-idf/components/spiffs/include -IC:/Users/whgPd/esp/esp-idf/components/wifi_provisioning/include -mlongcalls -Wno-frame-address  -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 -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -Og -fmacro-prefix-map=C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4=. -fmacro-prefix-map=C:/Users/whgPd/esp/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -DconfigENABLE_FREERTOS_DEBUG_OCDAWARE=1 -std=gnu++2b -fno-exceptions -fno-rtti -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/main.cpp.obj -MF esp-idf\main\CMakeFiles\__idf_main.dir\main.cpp.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/main.cpp.obj -c C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/main.cpp
In file included from C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:3, 
                 from C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/main.cpp:12:
C:/Users/whgPd/esp/esp-idf/components/esp_event/include/esp_event_loop.h:2:2: warning: #warning "esp_event_loop.h is deprecated, please include esp_event.h instead" [-Wcpp]
    2 | #warning "esp_event_loop.h is deprecated, please include esp_event.h instead"
      |  ^~~~~~~
C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:75:1: warning: missing initializer for member 'camera_config_t::fb_location' [-Wmissing-field-initializers]
   75 | };
      | ^
C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:75:1: warning: missing initializer for member 'camera_config_t::grab_mode' [-Wmissing-field-initializers]
C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:75:1: warning: missing initializer for member 'camera_config_t::sccb_i2c_port' [-Wmissing-field-initializers]
C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c: In function 'void init_sdcard()':
C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:98:5: warning: missing initializer for member 'esp_vfs_fat_mount_config_t::disk_status_check_enable' [-Wmissing-field-initializers]  
   98 |     };
      |     ^
C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:108:24: error: invalid conversion from 'int' to 'gpio_num_t' [-fpermissive]
  108 |     gpio_set_pull_mode(15, GPIO_PULLUP_ONLY);   // CMD, needed in 4- and 1- line modes
      |                        ^~
      |                        |
      |                        int
In file included from C:/Users/whgPd/esp/esp-idf/components/driver/sdmmc/include/driver/sdmmc_host.h:16,    
                 from C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:13:C:/Users/whgPd/esp/esp-idf/components/driver/gpio/include/driver/gpio.h:184:41: note:   initializing argument 1 of 'esp_err_t gpio_set_pull_mode(gpio_num_t, gpio_pull_mode_t)'
  184 | esp_err_t gpio_set_pull_mode(gpio_num_t gpio_num, gpio_pull_mode_t pull);
      |                              ~~~~~~~~~~~^~~~~~~~
C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:109:24: error: invalid conversion from 'int' to 'gpio_num_t' [-fpermissive]
  109 |     gpio_set_pull_mode(2, GPIO_PULLUP_ONLY);    // D0, needed in 4- and 1-line modes
      |                        ^
      |                        |
      |                        int
C:/Users/whgPd/esp/esp-idf/components/driver/gpio/include/driver/gpio.h:184:41: note:   initializing argument 1 of 'esp_err_t gpio_set_pull_mode(gpio_num_t, gpio_pull_mode_t)'
  184 | esp_err_t gpio_set_pull_mode(gpio_num_t gpio_num, gpio_pull_mode_t pull);
      |                              ~~~~~~~~~~~^~~~~~~~
C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:110:24: error: invalid conversion from 'int' to 'gpio_num_t' [-fpermissive]
  110 |     gpio_set_pull_mode(4, GPIO_PULLUP_ONLY);    // D1, needed in 4-line mode only
      |                        ^
      |                        |
      |                        int
C:/Users/whgPd/esp/esp-idf/components/driver/gpio/include/driver/gpio.h:184:41: note:   initializing argument 1 of 'esp_err_t gpio_set_pull_mode(gpio_num_t, gpio_pull_mode_t)'
  184 | esp_err_t gpio_set_pull_mode(gpio_num_t gpio_num, gpio_pull_mode_t pull);
      |                              ~~~~~~~~~~~^~~~~~~~
C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:111:24: error: invalid conversion from 'int' to 'gpio_num_t' [-fpermissive]
  111 |     gpio_set_pull_mode(12, GPIO_PULLUP_ONLY);   // D2, needed in 4-line mode only
      |                        ^~
      |                        |
      |                        int
C:/Users/whgPd/esp/esp-idf/components/driver/gpio/include/driver/gpio.h:184:41: note:   initializing argument 1 of 'esp_err_t gpio_set_pull_mode(gpio_num_t, gpio_pull_mode_t)'
  184 | esp_err_t gpio_set_pull_mode(gpio_num_t gpio_num, gpio_pull_mode_t pull);
      |                              ~~~~~~~~~~~^~~~~~~~
C:/Users/whgPd/OneDrive/Desktop/esp-test/camera_test_4/main/camera/camera_task_1.c:112:24: error: invalid conversion from 'int' to 'gpio_num_t' [-fpermissive]
  112 |     gpio_set_pull_mode(13, GPIO_PULLUP_ONLY);   // D3, needed in 4- and 1-line modes
      |                        ^~
      |                        |
      |                        int
C:/Users/whgPd/esp/esp-idf/components/driver/gpio/include/driver/gpio.h:184:41: note:   initializing argument 1 of 'esp_err_t gpio_set_pull_mode(gpio_num_t, gpio_pull_mode_t)'
  184 | esp_err_t gpio_set_pull_mode(gpio_num_t gpio_num, gpio_pull_mode_t pull);
      |                              ~~~~~~~~~~~^~~~~~~~
ninja: build stopped: subcommand failed.

 *  The terminal process "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command ninja " terminated with exit code: 1.

More Information.

No response

nopnop2002 commented 10 months ago

Since you are using main.cpp, you need to do it like this.

gpio_set_pull_mode((gpio_num_t)4, GPIO_PULLUP_ONLY);

esp-idf supports C++, but it's a bit cumbersome.

ScumCoder commented 7 months ago

Since you are using main.cpp, you need to do it like this.

gpio_set_pull_mode((gpio_num_t)4, GPIO_PULLUP_ONLY);

esp-idf supports C++, but it's a bit cumbersome.

No one should ever use C-style casts in C++. If the function expects an enumeration value as an argument, you should give that function an enumeration value as an argument:

gpio_set_pull_mode(GPIO_NUM_4, GPIO_PULLUP_ONLY);