Дело было вечером, делать было нечего. Взяли мы платку Leaf Maple Mini, ST-LINK_V2, STM32CubeMX, STM32CubeIDE – сгенерировали настройку периферии USB в STM32CubeMX, скомпилировали в STM32CubeIDE, залили прошивку Leaf Maple Mini и … ничего у нас не заработало. USB вообще никак не реагирует на подключение. При этом с родной прошивкой загрузчика USB порт работал как полагается. На других платках (не Maple Mini) сделанная мной прошивка работала как надо. И так прошел весь вечер.
Причина не работы порта USB была в схемотехнике этой платы.
Получается, чтоб включить наш USB порт нам необходимо задействовать еще один PIN нашей платы PB9 и подать на него низкий уровень сигнала, что и было сделано, теперь наш USB порт заработал как положено.
А зачем это сделано? Мое предположение: для возможности управлять подключение USB из кода; убирает проблему с подключение платки к USB при питании от него – в начальный момент пока наш чип грузиться, настраивает свои порты ввода/вывода USB порт компьютера не будет видеть нашу платку и пытаться с ней поговорить, пока не пройдет инициализация на нашем чипе и не появиться соответствующий сигнал, что активирует USB порт и наш чип уже будет готов к общению.
В итоге: несколько часов жизни коту под хвост, кучу убитых нервных клеток и дергающийся глаз, а все из-за того, что схемы на платки надо иметь под рукой.