Estoy usando STM32F7-45 en mi propia placa, y estoy tratando de programar un dispositivo USB (probé el COM virtual y el HID, por separado).
Pero después de conectarlo a la PC, se detecta (después de un tiempo) con el error " Dispositivo desconocido (error en la solicitud del descriptor del dispositivo) ".
Eléctricamente (PCB):
Creo que la PCB no es un error aquí, solo tengo D + y D- pistas cortas desde el conector a la unidad de usuario y eso es todo.
Tengo un pull-up 1.5k (lo intenté con y sin él), pero ni siquiera es necesario en STM32.
Tengo conexión de verificación y un cable y estoy seguro de que se conecta.
Código:
Estoy usando el código generado por HAL y STM32CubeMx combinado con mi proyecto. Generalmente los programas se congelan.
1) Después de ejecutar la línea (del código de biblioteca) USBx->GAHBCFG |= USB_OTG_GAHBCFG_GINT;
. Lo sé, ya que intenté imprimir antes y después de esa línea y solo se imprimen las primeras impresiones printf (). No entiendo cómo el programa puede atascarse allí.
De todos modos, si deshabilito la detección de VBUS, entonces el programa no se queda atascado allí y todo MX_USB_DEVICE_Init
termina.
2) Pero entonces, el programa ejecuta algunos ciclos (por ejemplo, se imprimirá "listo" y encendió el LED) y luego se congela. Completamente. Este LED debería parpadear en un bucle infinito, pero no lo hace. Tengo otro LED para habilitar en todos los controladores de errores (como falla dura, etc.) y parece que el programa no va allí (ya que el LED está apagado), así que no entiendo dónde se atasca.
- Después de COM virtual, probé HID pero fue en vano. Me da el mismo comportamiento.
- Si enciendo la placa desde el cargador (no desde la PC), el programa no se bloquea.