USB CDC vaciando el búfer de TX

1

Una breve introducción a este problema:

Tengo un STM32F767 que está configurado para USB Device FS. La interfaz USB se utiliza para transmitir una gran variedad de datos desde MCU a la computadora. Si, por casualidad, el usuario cierra el puerto de comunicaciones virtuales (USB) de la MCU, la próxima vez que el usuario abra el puerto de comunicaciones virtuales (USB), la MCU enviará los datos restantes que estaba transmitiendo a la computadora, creando muchos problemas.

Quiero vaciar el búfer de TX del modo de dispositivo USB o abortar el progreso de transmisión cada vez que VCP se abre / cierra en la computadora. Tengo que mencionar que uso las bibliotecas HAL.

    
pregunta Nixmd

1 respuesta

0

Estoy usando STM32Cube v1.16.0 y esto está funcionando para mí:

#include "stm32f4xx_ll_usb.h"

...

PCD_HandleTypeDef *hpcd = hUsbDeviceFS.pData;
USB_FlushTxFifo(hpcd->Instance, 0x10U);

El indicador 0x10U significa "Eliminar todos los buffers Tx". Vea stm32f4xx_ll_usb.c para más detalles.

    
respondido por el Evgeny P. Kurbatov

Lea otras preguntas en las etiquetas