RPi Pico не получает обратные вызовы для размонтирования TinyUSB

Я создал простую клавиатуру на Pico, используя C SDK с TinyUSB. TinyUSB требует определения некоторых функций обратного вызова, две из которых — tud_mount_cb и tud_umount_cb. Первый работает без проблем, после подключения USB вижу ожидаемые логи UART. Я обнаружил, что tud_umount_cb не вызывается, когда я отключаю Pico от ПК:

// Invoked when device is unmounted
void tud_umount_cb(void)
{
    global_callback.mounted = false;
}

Кроме того, я пытался вызвать на tud_mounted и tud_connected, но оба они не смогли определить, когда Pico USB отключается.

Пробовал обычные функции и функции обратного вызова TinyUSB. Перепроверено на 3 разных Пико, 1 официальном дизайне и 2 вариантах USB-C. Что бы я ни пробовал, кажется, что Pico не может обнаружить отключение/отключение USB.

Кто-нибудь сталкивался с подобной проблемой?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Кто-нибудь сталкивался с подобной проблемой?

Действительно, у меня есть. При звонке tud_disconnect подтверждаю tud_umount_cb не звонят. Это использование Pico SDK 1.5.1 на Pico WH.

Примечательно, что если вы позвоните tud_connect позже, tud_mount_cb позвонят.

Смотрите: https://github.com/hathach/tinyusb/issues/2700

Ответ принят как подходящий

Для всех, кто найдет этот пост в будущем: это известная проблема на Pico, см. https://github.com/hathach/tinyusb/issues/2478

Другие вопросы по теме