Open Morpheusdreamlord opened 1 year ago
Доброго времени! По идее, при подключении микроконтроллера с этим примером кода в компьютер должно прийти тестовое миди-сообщение. Тестовое сообщение отправляется при старте из функции void MX_USB_DEVICE_Init(void) (расположено в файле usb_device.c) после инициализации устройства как миди. Попробуйте добавить в конце тела этой функции: ............
HAL_Delay(1000);
while (1) {
USBD_LL_Transmit(&hUsbDeviceFS, 0x81, txbuf, 8);
HAL_Delay(1200);
}
............ Когда одно сообщение отправлялось из stm32, то у меня тоже не всегда подключалось/определялось как миди. txbuf содержит в себе миди сообщение формата hires-midi, но оно всё равно должно быть распознано в компьютере. Попробуйте вначале, перед подключением stm32, запустить какую-либо программу на компьютере, которая работает с миди (или можно в браузере открыть страничку: https://www.midimonitor.com/). Также пробуйте несколько раз подключить stm32. Так-то я сам тоже не особо сильно разбираюсь во всём этом.. На F411 и H7 у меня запускалось и прилетало midi в ubuntu.
Спасибо большое, попробую. Мне нужна была хоть какая-то отправная точка , уверен дальше разберусь . Потом отпишу о результатах .
Здравствуйте! Спасибо огромное за данный пример! Подскажите, пожалуйста, на какой конкретной плате вы это тестируете? Подойдет ли Nucleo-H743?
Попытался изменить настройки такта под H753 но пока что не достиг успеха, хотя судя по документации для всех H7 контроллеров должен быть одинаковый конфиг. На данный момент USB, судя по ошибке, которая вылезает, конфигурируется правильно, а главная проблема в настройке такта.
Заранее спасибо за ответ!
Здравствуйте. Я пробовал это на stm32h750vbt6, stm32f411cu6 и stm32h743vit6. У меня usb не запускался, когда я тактировал usb и процессор через предделители и умножители от основного кварца. Когда переключил тактирование usb на встроенный источник 48мгц, usb заработал(у H7). При этом частоту на процессор можно выбирать любую(видимо). Ищите. Многие нюансы могут скрываться в неожиданных местах.
Спасибо большое за ответ! К этому моменту разобрался и действительно практически у всех stm32 контроллеров с функционалом USB есть внутренний 48мгц осциллятор, который без проблем запускает USB и тактирует его независимо от основной частоты процессора.
А моя проблема была в резисторе на положительном пине для USB - сопротивление было меньше требуемого. Когда припаял правильный резистор, все заработало.
Приветствую. Пытаюсь найти рабочую библиотеку midiusb для stm . Наткунлся на Ваш код , сделал все как описано , откорректированный код скомпилировался и собрался без ошибок. Контроллер F411 на BlackPill . Залил прошивку в контроллер дабы проверить будет ли опредляться устройство в диспетчере как midi usb . Но в диспетчере пусто. Можно конкретный пример какие функции в main.c нужно прописать дабы устройство для начала просто отправляло миди ноту 36 с велосити 100 по любому каналу в бесконечном цикле ? Я новичек в стм32 , поэтому пока сам не могу разобраться .Спасибо заранее .