Если будете сбрасывать прерывания не через библиотеку, а напрямую(EXTI->PR = EXTI_PR_PR8;) увидите двойной вхождения скорее всего. Второе вхождения происходит из-за того что не успевает флаг сбросится , а не потому что его кто то вызвал.
Чтоб убрать первое вхождение в прерывания при запуске - на просто перед разрешением прерывания сбросить флаг
EXTI->PR = EXTI_PR_PR8; Как через библиотеку не знаю.
Не знаю как в данной библиотек ( SPL ,HAL ) но если на CMSIS то надо До, Если поставить после, то может не сбросится прерывание и будет повторный заход , чтоб этого не произошло надо еще барьер ставить тогда.
Есть два варианта 1. настроена неправильно частота процессора ( проверить вывести на MCO , также надо понимать что у st есть несколько частот SYSCLK APB1(USART2....) APB2(USART1) и они разные ) 2. USART1 неправильно настроен так как он работает от другой шины - проверить USARTDIV = DIV_Mantissa + (DIV_Fraction / 16)