ESP32 GPIO
来自Jack's Lab
(版本间的差异)
(以“== IO_MUX == <br><br> == Matrix == Need to call the gpio_matrix_out()/gpio_matrix_in() to setup the gpio matrix: <source lang=cpp> /* * @brief set gpio input t...”为内容创建页面) |
(→IO_MUX) |
||
第1行: | 第1行: | ||
== IO_MUX == | == IO_MUX == | ||
+ | |||
+ | <source lang=cpp> | ||
+ | /* | ||
+ | * @brief Select pad as a gpio function from IOMUX. | ||
+ | * | ||
+ | * @param uint32_t gpio_num : gpio number, 0~0x27 | ||
+ | * | ||
+ | */ | ||
+ | void gpio_pad_select_gpio(uint8_t gpio_num); | ||
+ | </source> | ||
<br><br> | <br><br> |
2016年12月2日 (五) 22:54的版本
1 IO_MUX
/* * @brief Select pad as a gpio function from IOMUX. * * @param uint32_t gpio_num : gpio number, 0~0x27 * */ void gpio_pad_select_gpio(uint8_t gpio_num);
2 Matrix
Need to call the gpio_matrix_out()/gpio_matrix_in() to setup the gpio matrix:
/* * @brief set gpio input to a signal, one gpio can input to several signals. * @param uint32_t gpio : gpio number, 0~0x27 * @param uint32_t signal_idx : signal index. * @param bool inv : the signal is inv or not * @return None */ void gpio_matrix_in(uint32_t gpio, uint32_t signal_idx, bool inv); /* * @brief set signal output to gpio, one signal can output to several gpios. * @param uint32_t gpio : gpio number, 0~0x27 * @param uint32_t signal_idx : signal index. * signal_idx == 0x100, cancel output put to the gpio * @param bool out_inv : the signal output is inv or not * @param bool oen_inv : the signal output enable is inv or not */ void gpio_matrix_out(uint32_t gpio, uint32_t signal_idx, bool out_inv, bool oen_inv);
The signal_idx of I2S is in components/esp32/include/soc/gpio_sig_map.h:
#define I2S0O_BCK_IN_IDX 23 #define I2S0O_BCK_OUT_IDX 23 #define I2S1O_BCK_IN_IDX 24 #define I2S1O_BCK_OUT_IDX 24 #define I2S0O_WS_IN_IDX 25 #define I2S0O_WS_OUT_IDX 25 #define I2S1O_WS_IN_IDX 26 #define I2S1O_WS_OUT_IDX 26 #define I2S0I_BCK_IN_IDX 27 #define I2S0I_BCK_OUT_IDX 27 #define I2S0I_WS_IN_IDX 28 #define I2S0I_WS_OUT_IDX 28 #define I2S0I_DATA_IN0_IDX 140 #define I2S0O_DATA_OUT0_IDX 140 #define I2S0I_DATA_IN1_IDX 141 #define I2S0O_DATA_OUT1_IDX 141 #define I2S0I_DATA_IN2_IDX 142 #define I2S0O_DATA_OUT2_IDX 142 #define I2S0I_DATA_IN3_IDX 143 #define I2S0O_DATA_OUT3_IDX 143 #define I2S0I_DATA_IN4_IDX 144 #define I2S0O_DATA_OUT4_IDX 144 #define I2S0I_DATA_IN5_IDX 145 #define I2S0O_DATA_OUT5_IDX 145 #define I2S0I_DATA_IN6_IDX 146 #define I2S0O_DATA_OUT6_IDX 146 #define I2S0I_DATA_IN7_IDX 147 #define I2S0O_DATA_OUT7_IDX 147 #define I2S0I_DATA_IN8_IDX 148 #define I2S0O_DATA_OUT8_IDX 148 #define I2S0I_DATA_IN9_IDX 149 #define I2S0O_DATA_OUT9_IDX 149 #define I2S0I_DATA_IN10_IDX 150 #define I2S0O_DATA_OUT10_IDX 150 #define I2S0I_DATA_IN11_IDX 151 #define I2S0O_DATA_OUT11_IDX 151 #define I2S0I_DATA_IN12_IDX 152 #define I2S0O_DATA_OUT12_IDX 152 #define I2S0I_DATA_IN13_IDX 153 #define I2S0O_DATA_OUT13_IDX 153 #define I2S0I_DATA_IN14_IDX 154 #define I2S0O_DATA_OUT14_IDX 154 #define I2S0I_DATA_IN15_IDX 155 #define I2S0O_DATA_OUT15_IDX 155 #define I2S0O_DATA_OUT16_IDX 156 #define I2S0O_DATA_OUT17_IDX 157 #define I2S0O_DATA_OUT18_IDX 158 #define I2S0O_DATA_OUT19_IDX 159 #define I2S0O_DATA_OUT20_IDX 160 #define I2S0O_DATA_OUT21_IDX 161 #define I2S0O_DATA_OUT22_IDX 162 #define I2S0O_DATA_OUT23_IDX 163 #define I2S1I_BCK_IN_IDX 164 #define I2S1I_BCK_OUT_IDX 164 #define I2S1I_WS_IN_IDX 165 #define I2S1I_WS_OUT_IDX 165 #define I2S1I_DATA_IN0_IDX 166 #define I2S1O_DATA_OUT0_IDX 166 #define I2S1I_DATA_IN1_IDX 167 #define I2S1O_DATA_OUT1_IDX 167 #define I2S1I_DATA_IN2_IDX 168 #define I2S1O_DATA_OUT2_IDX 168 #define I2S1I_DATA_IN3_IDX 169 #define I2S1O_DATA_OUT3_IDX 169 #define I2S1I_DATA_IN4_IDX 170 #define I2S1O_DATA_OUT4_IDX 170 #define I2S1I_DATA_IN5_IDX 171 #define I2S1O_DATA_OUT5_IDX 171 #define I2S1I_DATA_IN6_IDX 172 #define I2S1O_DATA_OUT6_IDX 172 #define I2S1I_DATA_IN7_IDX 173 #define I2S1O_DATA_OUT7_IDX 173 #define I2S1I_DATA_IN8_IDX 174 #define I2S1O_DATA_OUT8_IDX 174 #define I2S1I_DATA_IN9_IDX 175 #define I2S1O_DATA_OUT9_IDX 175 #define I2S1I_DATA_IN10_IDX 176 #define I2S1O_DATA_OUT10_IDX 176 #define I2S1I_DATA_IN11_IDX 177 #define I2S1O_DATA_OUT11_IDX 177 #define I2S1I_DATA_IN12_IDX 178 #define I2S1O_DATA_OUT12_IDX 178 #define I2S1I_DATA_IN13_IDX 179 #define I2S1O_DATA_OUT13_IDX 179 #define I2S1I_DATA_IN14_IDX 180 #define I2S1O_DATA_OUT14_IDX 180 #define I2S1I_DATA_IN15_IDX 181 #define I2S1O_DATA_OUT15_IDX 181 #define I2S1O_DATA_OUT16_IDX 182 #define I2S1O_DATA_OUT17_IDX 183 #define I2S1O_DATA_OUT18_IDX 184 #define I2S1O_DATA_OUT19_IDX 185 #define I2S1O_DATA_OUT20_IDX 186 #define I2S1O_DATA_OUT21_IDX 187 #define I2S1O_DATA_OUT22_IDX 188 #define I2S1O_DATA_OUT23_IDX 189 #define I2S0I_H_SYNC_IDX 190 #define I2S0I_V_SYNC_IDX 191 #define I2S0I_H_ENABLE_IDX 192 #define I2S1I_H_SYNC_IDX 193 #define I2S1I_V_SYNC_IDX 194 #define I2S1I_H_ENABLE_IDX 195