El lado de mi PC es USB, emular como VCP
He logrado resolver el problema, pero no es una buena solución ...
He añadido 2 cosas:
- un protocolo de comunicación
- borrando el búfer tx para vaciarlo
Agregué un nuevo protocolo que es el comando START y STOP, necesito que el lado de mi PC envíe un comando STAT a mi firmware, antes de que empiece a enviar datos a mi PC
Siempre que esté en modo USB_BUSY, enviaré un búfer vacío para permitir que el firmware del VCP active una interrupción, y esto borrará mi USB_BUSY
Acabo de agregar esta línea de código solamente
USBD_LL_DataInStage((USB handler), (endpoint), 0); // 0 = empty buffer
¡Me encantaría saber si alguien tiene una mejor solución!
ACTUALIZAR !!<
Finalmente he resuelto este problema, ¡estoy reemplazando todo el controlador HAL STM32 para CDC USB de nuevo a la biblioteca de Periféricos Estándar para CDC USB!
y no hay mas problema con eso! Tengo muchos problemas con el controlador HAL de STM32, ¡está muy defectuoso! Si tiene algún problema con él, intente volver a la biblioteca de Periféricos estándar.