1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 01:05:27 +03:00

EXTI - Ensure the exti line is disabled and pending bit cleared for all

MCUs.

Prior to this commit there was no equivalent to EXTI_ClearITPendingBit
for H7.
This commit is contained in:
Dominic Clifton 2022-03-05 18:51:10 +01:00
parent d0de9ac1f8
commit c8ade4ee07

View file

@ -131,6 +131,8 @@ void EXTIConfig(IO_t io, extiCallbackRec_t *cb, int irqPriority, ioConfig_t conf
extiChannelRec_t *rec = &extiChannelRecs[chIdx];
rec->handler = cb;
EXTIDisable(io);
#if defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
GPIO_InitTypeDef init = {
.Pin = IO_Pin(io),
@ -140,7 +142,6 @@ void EXTIConfig(IO_t io, extiCallbackRec_t *cb, int irqPriority, ioConfig_t conf
};
HAL_GPIO_Init(IO_GPIO(io), &init);
if (extiGroupPriority[group] > irqPriority) {
extiGroupPriority[group] = irqPriority;
HAL_NVIC_SetPriority(extiGroupIRQn[group], NVIC_PRIORITY_BASE(irqPriority), NVIC_PRIORITY_SUB(irqPriority));
@ -158,11 +159,8 @@ void EXTIConfig(IO_t io, extiCallbackRec_t *cb, int irqPriority, ioConfig_t conf
#else
# warning "Unknown CPU"
#endif
uint32_t extiLine = IO_EXTI_Line(io);
EXTI_ClearITPendingBit(extiLine);
EXTI_InitTypeDef EXTIInit;
EXTIInit.EXTI_Line = extiLine;
EXTIInit.EXTI_Mode = EXTI_Mode_Interrupt;