diff --git a/src/stm32/Kconfig b/src/stm32/Kconfig index 16fe9044..90ba6523 100644 --- a/src/stm32/Kconfig +++ b/src/stm32/Kconfig @@ -234,7 +234,7 @@ choice bool "Serial (on USART1 PA15/PA14)" if LOW_LEVEL_OPTIONS && MACH_STM32F0 select SERIAL config STM32_SERIAL_USART1_ALT_PB7_PB6 - bool "Serial (on USART1 PB7/PB6)" if LOW_LEVEL_OPTIONS && MACH_STM32F4 + bool "Serial (on USART1 PB7/PB6)" if LOW_LEVEL_OPTIONS && !MACH_STM32F0 select SERIAL config STM32_SERIAL_USART2 bool "Serial (on USART2 PA3/PA2)" if LOW_LEVEL_OPTIONS @@ -243,7 +243,7 @@ choice bool "Serial (on USART2 PA15/PA14)" if LOW_LEVEL_OPTIONS && MACH_STM32F0 select SERIAL config STM32_SERIAL_USART2_ALT_PD6_PD5 - bool "Serial (on USART2 PD6/PD5)" if LOW_LEVEL_OPTIONS && MACH_STM32F4 + bool "Serial (on USART2 PD6/PD5)" if LOW_LEVEL_OPTIONS && !MACH_STM32F0 select SERIAL config STM32_SERIAL_USART3 bool "Serial (on USART3 PB11/PB10)" if LOW_LEVEL_OPTIONS diff --git a/src/stm32/stm32f1.c b/src/stm32/stm32f1.c index b9c1a434..57007615 100644 --- a/src/stm32/stm32f1.c +++ b/src/stm32/stm32f1.c @@ -156,7 +156,13 @@ gpio_peripheral(uint32_t gpio, uint32_t mode, int pullup) AFIO_MAPR_I2C1_REMAP); } else if (func == 7) { // USART - if (gpio == GPIO('D', 8) || gpio == GPIO('D', 9)) + if (gpio == GPIO('B', 6) || gpio == GPIO('B', 7)) + stm32f1_alternative_remap(AFIO_MAPR_USART1_REMAP_Msk, + AFIO_MAPR_USART1_REMAP); + else if (gpio == GPIO('D', 5) || gpio == GPIO('D', 6)) + stm32f1_alternative_remap(AFIO_MAPR_USART2_REMAP_Msk, + AFIO_MAPR_USART2_REMAP); + else if (gpio == GPIO('D', 8) || gpio == GPIO('D', 9)) stm32f1_alternative_remap(AFIO_MAPR_USART3_REMAP_Msk, AFIO_MAPR_USART3_REMAP_FULLREMAP); } else if (func == 9) {