STM32 USB: detección de conexión y desconexión

5

Utilizando el ejemplo del controlador de almacenamiento masivo USB STM32F4 en modo de dispositivo, ¿cómo detecta conexiones y desconexiones con un controlador host?

Intenté sondear el estado del pin VBUS pero podría ser alto desde un adaptador de pared o alto sin ninguna comunicación con el host.

¿Hay un registro para verificar? Noté DSTS (¿el estado supongo?) En las estructuras de la biblioteca USB pero no pude encontrar su documentación ni ningún comentario útil en el código.

    
pregunta David

2 respuestas

4

Podrías detectar la conexión y la desconexión de este archivo:

usbd_core.c

y la API para esto es

USBD_StatusTypeDef USBD_LL_DevConnected(USBD_HandleTypeDef  *pdev)
USBD_StatusTypeDef USBD_LL_DevDisconnected(USBD_HandleTypeDef  *pdev)

No estoy seguro acerca de la clase de almacenamiento masivo USB, pero en la clase CDC, las 2 API anteriores detectan la conexión USB y la desconexión, tal vez esto ayude

Cosas a tener en cuenta:

  • Conexión > cuando el cable USB físico está enchufado en el puerto USB
  • Desconexión > cuando el cable USB físico está desconectado del puerto USB

Utilicé STMCubeMX para generar la clase CDC USB.

    
respondido por el Tim
0

La respuesta es muy simple. Al igual que probó VBUS, pruebe DSTS y vea qué sucede. Buena suerte.

    
respondido por el Guill

Lea otras preguntas en las etiquetas