Ключевые слова - "без всякой на то необходимости". В данном случае
я действительно не вижу необходимости. С другой стороны, я вообще
не вижу нужды в SPL/HAL/LL. Мне кажется, писать напрямую в регистры
короче и понятнее. Вот код из реального проекта: #define EXTI_LINE 14
#define EXTI_PORT EXTI_GPIOB
void EXTI_init()
{
AFIO->EXTICR[(EXTI_LINE>>2)&3] =
EXTI_PORT << ((EXTI_LINE&3)<<2); // select port
EXTI->RTSR = 0; // rising
EXTI->FTSR = 1 << EXTI_LINE; // falling
EXTI->IMR = 1 << EXTI_LINE; // interrupt enable
NVIC_SetPriority( EXTI15_10_IRQn, 1 ); // same as USART
NVIC_EnableIRQ( EXTI15_10_IRQn );
}
extern "C" void EXTI15_10_IRQHandler( void )
{
EXTI->PR = 0x3F << 10; // clear pending bits
// That's all, folks!
}