Estoy utilizando el firmware STM32 HAL VCP generado por CubeMX en la placa de descubrimiento STM32F4. El puerto COM virtual funciona, puedo transmitir desde el microcontrolador a la PC tantos mensajes como desee. Pero en la otra dirección, desde la PC al microcontrolador, solo puedo enviar un mensaje. Si intento enviar un segundo mensaje, no se llamará al static int8_t CDC_Receive_FS (char* Buf, uint32_t *Len)
callback, y en la PC se cuelga RealTerm. El programa de mi cliente también se bloquea cuando intenta escribir en el puerto COM por segunda vez.
En el lado del microcontrolador, eliminé todo mi código en CDC_Receive_FS()
, actualmente solo devuelve USBD_OK
. En la función principal solo se llama periódicamente a HAL_Delay()
, también intenté eliminar esto, pero no tuvo ningún efecto.
¿Alguna idea, cuál podría ser el problema?