Me encontré con el mismo problema en STM32F1xx. Específicamente no podía conectarme al chip STM32 utilizando la interfaz SWD en mi placa personalizada, mientras que todo funcionaba bien en STM32F7xx ejecutando el mismo firmware en una placa NUCLEO. En mi caso, había 2 razones para esto:
- el código de inicio (generado por el SDK y CubeIDE) deshabilita la interfaz SWD casi inmediatamente después del encendido A MENOS QUE especifiques que estás usando SWD en el archivo .ioc (la vista de pinouts y configuración en STM32CubeIDE)
- no habría importado que la línea nRST estuviera enrutada a la interfaz SWD de mi placa. Por desgracia, me olvidé de llevarlo allí.
Solución a corto plazo: llevé la señal nRST del programador a la línea de reset usando el cable externo (en mi caso fue fácil, ya que tenía un botón físico de reset en mi placa). Luego la flasheé con la versión de FW que tenía SWD especificada en la vista de pinouts. Después de eso, no hubo necesidad de conectar el nRST más.
Solución a largo plazo: encaminar la línea nRST a la interfaz SWD en la próxima revisión de la placa. Con este cambio, podría desactivar SWD de forma segura durante el arranque y reutilizar los pines