La mejor manera de que encaje en la pila de software de ST es implementar estas funciones:
void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd);
void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd);
Se declaran con un enlace débil en la pila de la HAL, por lo que sus implementaciones anularán los stubs de no hacer nada de la HAL.
Sin embargo, si utiliza Cube, encontrará estos elementos ya implementados en usbd_conf.c
y por razones desconocidas no hay /* USER CODE BEGIN */
en estas funciones para que el cubo sobrescriba tu código la próxima vez que lo guardes. Hasta que ST arregle esto usted tiene que no usar Cube (yo lo uso para arrancar un proyecto y luego dejar de usarlo y tomar el control) o puede modificar la plantilla de Cube para este archivo.
En el [CUBE-INSTALL-DIR]/db/templates
localice el directorio usbdconf_XX.ftl
para su MCU. Por ejemplo, para el f4 será usbdconf_f4_c.ftl
. Ahora edite ese archivo para incluir USER CODE BEGIN
y USER CODE END
bloques de comentarios. La próxima vez que generes código fuente tendrás una sección donde colocar tu código.
0 votos
Lleve esta pregunta al foro de STM, envíe un correo electrónico a su servicio técnico. ¿Se trata de un PCB personalizado con STM32 en él, o un descubrimiento / otra tarjeta de desarrollo?
0 votos
Ver la actividad del bus USB sería una pista fuerte.