В opencm3 нужные макросы есть. И даже функции вроде
Код
gpio_primary_remap(AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_OFF, AFIO_MAPR_SPI1_REMAP);
(это я SPI на более удобные ноги переносил) или так:
Код
gpio_primary_remap(AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_OFF, AFIO_MAPR_TIM2_REMAP_PARTIAL_REMAP2);
(а это - переносил таймер на 5-tolerant ноги).
Ну и, естественно, везде в main() до конфигурирования ног делаю
Код
AFIO_MAPR = AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_OFF;
(по какой-то глупой причине это приходится явно делать)