Notas de desarrollo de la biblioteca HAL para USB - Comunicación 🚧
Este artículo se basa en el kit de desarrollo RobotCtrl de desarrollo propio, con un núcleo de microcontrolador STM32F407ZET6 y pines USB_Slave en PA11
y PA12
. Para el esquema y una descripción detallada, consulte [RobotCtrl - Kit de desarrollo STM32 universal[por_sustituir[3]]RobotCtrl-STM32-Universal-Development-Kit).
Pasos sencillos para realizar una prueba de bucle de retroalimentación
Configuración interna de CubeMX
- Configure el reloj como reloj externo de alta velocidad (HSE).
- Configure el árbol de reloj para asegurarse de que la velocidad del reloj en el extremo del árbol de reloj sea de 48 MHz.
- En la página
USB_OTG_FS
, configure elModo
comoSolo dispositivo
, con los pines predeterminadosPA11
yPA12
. - En la página
USB_DEVICE
, configure laClase para FS IP
comoClase de dispositivo de comunicación (Puerto virtual COM)
.
Configuración en el código
Para implementar la funcionalidad de bucle de retroalimentación de datos, solo es necesario agregar una línea en la función CDC_Receive_FS
del archivo usbd_cdc_if.c
:
Pruebas
Abra el Administrador de dispositivos y verifique si el dispositivo se muestra. Si no se encuentra el dispositivo o hay un signo de exclamación amarillo, descargue el controlador desde el sitio web de ST: Controlador de puerto COM virtual STM32.
Si ha instalado el controlador y aún no se reconoce correctamente, intente ajustar el Tamaño mínimo de montón
a 0x600
o más alto en CubeMX - Project Manager
- Project
- Linker Settings
.
Abra una herramienta de terminal serie (con cualquier velocidad de baudios) y verá que al enviar cualquier carácter, recibirá el mismo carácter de vuelta.
Referencias y agradecimientos
[por_sustituir[1]]
[por_sustituir[2]]
Este post está traducido usando ChatGPT, por favor feedback si hay alguna omisión.