【求助】win连接串口会导致开发板按键失效
Posted: Tue Jun 15, 2021 9:16 am
问题描述:
使用idf.py monitor,不论什么操作系统,功能都正常;
使用macOS screen命令,功能正常;
使用Windows putty或xshell,会有这种异常情况:串口open的那一刻会导致板子reboot,可以正常看到板子的串口打印信息,板子的按键失灵,无法触发 gpio_isr_handler -> xQueue 事件。
请问是什么原因导致按键失效呢?
设备描述:
使用开发板:ESP32-C3
配置GPIO9(boot键),并如下代码来初始化按键:
使用idf.py monitor,不论什么操作系统,功能都正常;
使用macOS screen命令,功能正常;
使用Windows putty或xshell,会有这种异常情况:串口open的那一刻会导致板子reboot,可以正常看到板子的串口打印信息,板子的按键失灵,无法触发 gpio_isr_handler -> xQueue 事件。
请问是什么原因导致按键失效呢?
设备描述:
使用开发板:ESP32-C3
配置GPIO9(boot键),并如下代码来初始化按键:
- gpio_config_t io_conf;
- io_conf.intr_type = GPIO_INTR_ANYEDGE;
- io_conf.pin_bit_mask = GPIO_BTN_PIN_SEL;
- //set as input mode
- io_conf.mode = GPIO_MODE_INPUT;
- io_conf.pull_up_en = GPIO_PULLUP_ENABLE;
- ret = gpio_config(&io_conf);
- if (ret) {
- ESP_LOGE(TAG, "gpio config failed: %s\n", esp_err_to_name(ret));
- return;
- }
- //create a queue to handle gpio event from isr
- btn_evt_queue = xQueueCreate(10, sizeof(uint8_t));
- //start gpio task
- xTaskCreate(btn_task, "btn_task", 2048, NULL, 10, NULL);
- //install gpio isr service
- ret = gpio_install_isr_service(ESP_INTR_FLAG_DEFAULT);
- if (ret) {
- ESP_LOGE(TAG, "gpio install isr failed: %s\n", esp_err_to_name(ret));
- return;
- }
- //hook isr handler for specific gpio pin
- ret = gpio_isr_handler_add(GPIO_BTN_IO, gpio_isr_handler, (void*) GPIO_BTN_IO);
- if (ret) {
- ESP_LOGE(TAG, "gpio isr add failed: %s\n", esp_err_to_name(ret));
- return;
- }