1. Спящий режим в пограмме используется? Если да, то не забываем включать тактирование Debug-интерфейса в спящем режиме (DBGMCU->CR |= DBGMCU_CR_DBG_SLEEP | DBGMCU_CR_DBG_STOP | DBGMCU_CR_DBG_STANDBY;). Но отладка в кейле все равно не заработает :-)
2. Если испльзуется ремап периферии, то нужно корректно писать в регистр MAPR. Конструкцию типа AFIO->MAPR |= xxx использовать некорректно, т.к. битовое поле AFIO_MAPR_SWJ_CFG при чтении имеет неопределенное значение.