ESP32C3
gpio_set_direction(GPIO_NUM_8, GPIO_MODE_OUTPUT); //写这个或下一个
gpio_set_direction(8, GPIO_MODE_OUTPUT); //或这个
int level = 0;
level = !level;
gpio_set_level(GPIO_NUM_8, level);
GPIO口:
0,1,2,3 变化OK
4,5,6,7 不变化。下面调整后4,5可以变化
8,9,10, 变化OK
18,19 不变化
也不知道为什么这么多引脚电平不变化的。
20221224找到原因了:
gpio_reset_pin(3); //需要加这句话
gpio_reset_pin(4);
gpio_reset_pin(5);
gpio_set_direction(GPIO_NUM_3, GPIO_MODE_OUTPUT); //写这个或下一个
gpio_set_direction(GPIO_NUM_4, GPIO_MODE_OUTPUT); //写这个或下一个
gpio_set_direction(GPIO_NUM_5, GPIO_MODE_OUTPUT); //写这个或下一个
esp_err_t gpio_reset_pin(gpio_num_t gpio_num)
{
assert(GPIO_IS_VALID_GPIO(gpio_num));
gpio_config_t cfg = {
.pin_bit_mask = BIT64(gpio_num),
.mode = GPIO_MODE_DISABLE,
//for powersave reasons, the GPIO should not be floating, select pullup
.pull_up_en = true,
.pull_down_en = false,
.intr_type = GPIO_INTR_DISABLE,
};
gpio_config(&cfg);
return ESP_OK;
}