gpio.rst 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. GPIO
  2. ====
  3. Overview
  4. --------
  5. The ESP32 chip features 40 physical GPIO pads. Some GPIO pads cannot be used or do not have the corresponding pin on the chip package(refer to technical reference manual ). Each pad can be used as a general purpose I/O or can be connected to an internal peripheral signal.
  6. Note that GPIO6-11 are usually used for SPI flash. GPIO34-39 can only be set as input mode.
  7. Application Example
  8. -------------------
  9. GPIO output and input interrupt example: `examples/21_gpio <https://github.com/espressif/esp-idf/tree/master/examples/21_gpio>`_.
  10. API Reference
  11. -------------
  12. Header Files
  13. ^^^^^^^^^^^^
  14. * `driver/include/driver/driver/gpio.h <https://github.com/espressif/esp-idf/blob/master/components/driver/include/driver/gpio.h>`_
  15. Macros
  16. ^^^^^^
  17. .. doxygendefine:: GPIO_SEL_0
  18. .. doxygendefine:: GPIO_SEL_1
  19. .. doxygendefine:: GPIO_SEL_2
  20. .. doxygendefine:: GPIO_SEL_3
  21. .. doxygendefine:: GPIO_SEL_4
  22. .. doxygendefine:: GPIO_SEL_5
  23. .. doxygendefine:: GPIO_SEL_6
  24. .. doxygendefine:: GPIO_SEL_7
  25. .. doxygendefine:: GPIO_SEL_8
  26. .. doxygendefine:: GPIO_SEL_9
  27. .. doxygendefine:: GPIO_SEL_10
  28. .. doxygendefine:: GPIO_SEL_11
  29. .. doxygendefine:: GPIO_SEL_12
  30. .. doxygendefine:: GPIO_SEL_13
  31. .. doxygendefine:: GPIO_SEL_14
  32. .. doxygendefine:: GPIO_SEL_15
  33. .. doxygendefine:: GPIO_SEL_16
  34. .. doxygendefine:: GPIO_SEL_17
  35. .. doxygendefine:: GPIO_SEL_18
  36. .. doxygendefine:: GPIO_SEL_19
  37. .. doxygendefine:: GPIO_SEL_21
  38. .. doxygendefine:: GPIO_SEL_22
  39. .. doxygendefine:: GPIO_SEL_23
  40. .. doxygendefine:: GPIO_SEL_25
  41. .. doxygendefine:: GPIO_SEL_26
  42. .. doxygendefine:: GPIO_SEL_27
  43. .. doxygendefine:: GPIO_SEL_32
  44. .. doxygendefine:: GPIO_SEL_33
  45. .. doxygendefine:: GPIO_SEL_34
  46. .. doxygendefine:: GPIO_SEL_35
  47. .. doxygendefine:: GPIO_SEL_36
  48. .. doxygendefine:: GPIO_SEL_37
  49. .. doxygendefine:: GPIO_SEL_38
  50. .. doxygendefine:: GPIO_SEL_39
  51. .. doxygendefine:: GPIO_PIN_REG_0
  52. .. doxygendefine:: GPIO_PIN_REG_1
  53. .. doxygendefine:: GPIO_PIN_REG_2
  54. .. doxygendefine:: GPIO_PIN_REG_3
  55. .. doxygendefine:: GPIO_PIN_REG_4
  56. .. doxygendefine:: GPIO_PIN_REG_5
  57. .. doxygendefine:: GPIO_PIN_REG_6
  58. .. doxygendefine:: GPIO_PIN_REG_7
  59. .. doxygendefine:: GPIO_PIN_REG_8
  60. .. doxygendefine:: GPIO_PIN_REG_9
  61. .. doxygendefine:: GPIO_PIN_REG_10
  62. .. doxygendefine:: GPIO_PIN_REG_11
  63. .. doxygendefine:: GPIO_PIN_REG_12
  64. .. doxygendefine:: GPIO_PIN_REG_13
  65. .. doxygendefine:: GPIO_PIN_REG_14
  66. .. doxygendefine:: GPIO_PIN_REG_15
  67. .. doxygendefine:: GPIO_PIN_REG_16
  68. .. doxygendefine:: GPIO_PIN_REG_17
  69. .. doxygendefine:: GPIO_PIN_REG_18
  70. .. doxygendefine:: GPIO_PIN_REG_19
  71. .. doxygendefine:: GPIO_PIN_REG_20
  72. .. doxygendefine:: GPIO_PIN_REG_21
  73. .. doxygendefine:: GPIO_PIN_REG_22
  74. .. doxygendefine:: GPIO_PIN_REG_23
  75. .. doxygendefine:: GPIO_PIN_REG_25
  76. .. doxygendefine:: GPIO_PIN_REG_26
  77. .. doxygendefine:: GPIO_PIN_REG_27
  78. .. doxygendefine:: GPIO_PIN_REG_32
  79. .. doxygendefine:: GPIO_PIN_REG_33
  80. .. doxygendefine:: GPIO_PIN_REG_34
  81. .. doxygendefine:: GPIO_PIN_REG_35
  82. .. doxygendefine:: GPIO_PIN_REG_36
  83. .. doxygendefine:: GPIO_PIN_REG_37
  84. .. doxygendefine:: GPIO_PIN_REG_38
  85. .. doxygendefine:: GPIO_PIN_REG_39
  86. .. doxygendefine:: GPIO_APP_CPU_INTR_ENA
  87. .. doxygendefine:: GPIO_APP_CPU_NMI_INTR_ENA
  88. .. doxygendefine:: GPIO_PRO_CPU_INTR_ENA
  89. .. doxygendefine:: GPIO_PRO_CPU_NMI_INTR_ENA
  90. .. doxygendefine:: GPIO_SDIO_EXT_INTR_ENA
  91. .. doxygendefine:: GPIO_MODE_DEF_INPUT
  92. .. doxygendefine:: GPIO_MODE_DEF_OUTPUT
  93. .. doxygendefine:: GPIO_MODE_DEF_OD
  94. .. doxygendefine:: GPIO_PIN_COUNT
  95. .. doxygendefine:: GPIO_IS_VALID_GPIO
  96. .. doxygendefine:: GPIO_IS_VALID_OUTPUT_GPIO
  97. Type Definitions
  98. ^^^^^^^^^^^^^^^^
  99. .. doxygentypedef:: gpio_isr_t
  100. .. doxygentypedef:: gpio_isr_handle_t
  101. Enumerations
  102. ^^^^^^^^^^^^
  103. .. doxygenenum:: gpio_num_t
  104. .. doxygenenum:: gpio_int_type_t
  105. .. doxygenenum:: gpio_mode_t
  106. .. doxygenenum:: gpio_pullup_t
  107. .. doxygenenum:: gpio_pulldown_t
  108. .. doxygenenum:: gpio_pull_mode_t
  109. Structures
  110. ^^^^^^^^^^
  111. .. doxygenstruct:: gpio_config_t
  112. :members:
  113. Functions
  114. ^^^^^^^^^
  115. .. doxygenfunction:: gpio_config
  116. .. doxygenfunction:: gpio_set_intr_type
  117. .. doxygenfunction:: gpio_intr_enable
  118. .. doxygenfunction:: gpio_intr_disable
  119. .. doxygenfunction:: gpio_set_level
  120. .. doxygenfunction:: gpio_get_level
  121. .. doxygenfunction:: gpio_set_direction
  122. .. doxygenfunction:: gpio_set_pull_mode
  123. .. doxygenfunction:: gpio_wakeup_enable
  124. .. doxygenfunction:: gpio_wakeup_disable
  125. .. doxygenfunction:: gpio_isr_register
  126. .. doxygenfunction:: gpio_pullup_en
  127. .. doxygenfunction:: gpio_pullup_dis
  128. .. doxygenfunction:: gpio_pulldown_en
  129. .. doxygenfunction:: gpio_pulldown_dis
  130. .. doxygenfunction:: gpio_install_isr_service
  131. .. doxygenfunction:: gpio_uninstall_isr_service
  132. .. doxygenfunction:: gpio_isr_handler_add
  133. .. doxygenfunction:: gpio_isr_handler_remove