NXP MCU 技术论坛
直播中

李星童

7年用户 974经验值
私信 关注
[问答]

如何将GPIO13重新配置为输出?

要自动配置固件,我需要读取通常用作输出的引脚 (GPIO13) 的电压。不幸的是,读取逻辑电平(两种硬件配置的值相同)没有用,所以我需要使用 ADC。
代码是:

#define PIN_LED_RELAY2 13

int adc_raw;

   ESP_ERROR_CHECK(adc1_config_width(ADC_WIDTH_BIT_DEFAULT));

   ESP_ERROR_CHECK(adc2_config_channel_atten(ADC2_CHANNEL_4, ADC_ATTEN_11db));

   vTaskDelay(100 / porttiCK_PERIOD_MS);

   adc2_get_raw(ADC2_CHANNEL_4, ADC_WIDTH_BIT_DEFAULT, &adc_raw);

   printf("IO13: %d\n", adc_raw);

   如果(adc_raw > 1500)

      nRelay = 2;

   // 重新配置 GPIO 作为输出

   PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[PIN_LED_RELAY2], PIN_FUNC_GPIO);

   gpio_set_direction(PIN_LED_RELAY2, GPIO_MODE_OUTPUT);

   gpio_set_level(PIN_LED_RELAY3, 1);

但是如果我评论模拟读取部分,以这种方式设置或重置 GPIO13 无效,而它可以工作。

如何将 GPIO13 重新配置为输出?

更多回帖

发帖
×
20
完善资料,
赚取积分