¿Cómo puedo detectar una expulsión segura de un dispositivo de almacenamiento masivo en STM32?

4

Uso el módulo usb de STM32F103C8T6 para ser un dispositivo de almacenamiento masivo, que permite al usuario editar algunos archivos de configuración en el proyecto.

Quiero salir del modo de almacenamiento masivo en cuanto el usuario expulsa el disco. Intenté consultar bDeviceState, pero su valor solo cambia cuando vuelvo a conectar el dispositivo (aún permanece "CONFIGURADO" después de expulsar el dispositivo de forma segura).

Quiero un método confiable para detectar el evento de expulsión segura de la computadora. Gracias.

    
pregunta user123179

1 respuesta

2

"Seguro para expulsar" es estrictamente un cambio de estado del software del lado del host. Simplemente significa que el host ha terminado de escribir cualquier cambio pendiente en el dispositivo y no iniciará más.

No hay ninguna razón para proporcionar una señal al dispositivo en sí una vez que esto haya sucedido, por lo que no hay manera de detectarla allí cuando esté emulando almacenamiento. Deberá proporcionar un canal lateral (es decir, un punto final USB separado) y un controlador personalizado del lado del host si desea hacer esto.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas