Se ti riferisci a questo codice
PHP:
#include "stm32f4xx.h"
//devo definire cosa fa questa routine,
//il cui prototipo è contenuto nel file di startup
void EXTI0_IRQHandler();
int main (void){
RCC->AHB1ENR |= 0x9; //abilito il clock per portd e il pulsante 1001
RCC->APB2ENR |= (1<<14);// abilito syscfg (per le interrupt)
GPIOD->MODER |= (0x55<<24); //configuro i pin 12 13 14 15 in GPIO
EXTI->IMR |= 1; //maschero il primo bit (per il pulsante)
SYSCFG->EXTICR[0]&=!(0xF);
EXTI->RTSR |= 1; //scelgo il fronte di salita (per il pin 0)
NVIC->ISER[0] |= (1<<6); //devo servire la routine in posizione [0]6 dell'NVIC
while(1);
}
void EXTI0_IRQHandler(){
EXTI->PR |= 1; //disabilito il pending request
GPIOD->ODR |= (0xF<<12); //1111 sul bit 12 13 14 15
}
L'ho appena testato e funziona, sei sicuro di aver premuto il pulsante giusto (blu)?