STM32F429 ignorando las escrituras en los registros EXTI mux

0

El siguiente código se encuentra al inicio de mi función main() :

SystemInit();
SystemCoreClockUpdate();

SysTick_Config(168); // 1 us ticks
NVIC_SetPriority(SysTick_IRQn, 0);

RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN;

// Set EXTI on PB0 for CLK
SYSCFG->EXTICR[0] |= 0b0001;
SET(EXTI->RTSR, EXTI_RTSR_TR0);
SET(EXTI->IMR, EXTI_IMR_MR0);
NVIC_SetPriority(EXTI0_IRQn, 1);
NVIC_EnableIRQ(EXTI0_IRQn);

Sin embargo, a pesar del hecho de que estoy configurando el indicador de bit para el EXTI0 activado por el puerto B, todavía lo está generando cuando PA0 tiene un flanco ascendente y no cuando PB0 lo hace. Cuando se usa un depurador para recorrer el código, EXTICR1 no cambia, a pesar del hecho de que se está escribiendo (verificado a través del desmontaje) e incluso si uso el depurador para configurar el registro, en realidad no cambia.

¿Qué estoy haciendo mal? No puedo encontrar ningún reloj o marca que necesito habilitar. Aún más extraño, recuerdo que funcionaba con prácticamente el mismo código, aunque no estaba usando ningún tipo de control de versión, por lo que no puedo verificar los detalles precisos del mismo.

    
pregunta typedrat

1 respuesta

3

Es posible que tenga que habilitar el reloj del controlador del sistema, bit 14 en el registro RCC_APB2ENR, antes de escribir en EXTICR

    
respondido por el user28910

Lea otras preguntas en las etiquetas