Отличия в USB-Host между STM32F и GD32F, про которые я знаю -> https://caxapa.ru/1325617.html
Еще насчет отличий USB Host в STM32F и GD32F, про которую я знаю - у STMки Host определяет подключение девайса по подтяжке на линии D+ всегда (взводится соответствующий бит в регистре), а у Gigadevice - для того чтобы этот бит взвелся надо предварительно подать питание 5В на вывод VBUS (чтобы был зафиксирован передний фронт). Если напряжение на VBUS не меняется, то первое подключение девайса он определит, а последующие - нет.
Я дорабатывал библиотеку Host-а - не ждал установки этого бита (не помню сейчас как он называется), ввел небольшую паузу. Дальше все работало.