Я создал простую клавиатуру на 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.
Кто-нибудь сталкивался с подобной проблемой?
Кто-нибудь сталкивался с подобной проблемой?
Действительно, у меня есть. При звонке tud_disconnect
подтверждаю tud_umount_cb
не звонят. Это использование Pico SDK 1.5.1 на Pico WH.
Примечательно, что если вы позвоните tud_connect
позже, tud_mount_cb
позвонят.
Для всех, кто найдет этот пост в будущем: это известная проблема на Pico, см. https://github.com/hathach/tinyusb/issues/2478