5 votos

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

Utilizo 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 tan pronto como 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 con seguridad).

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

2voto

GSerg Puntos 33571

"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 va a 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 el almacenamiento. Tendrá que proporcionar un canal lateral (es decir, un punto final USB separado) y un controlador del lado del host personalizado si desea hacer esto.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X