#include <Arduino.h>
#define LED_PIN PC13
#define BTN_PIN PA5
volatile bool wakeup = false;
void wakeUp(){
wakeup = true;
}
void setup(){
Serial.begin(115200);
Serial.println("STM32");
pinMode(LED_PIN, OUTPUT);
pinMode(BTN_PIN, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(BTN_PIN), wakeUp, FALLING);
}
void loop(){
digitalWrite(LED_PIN, LOW);
Serial.println("LED ON");
delay(1000);
digitalWrite(LED_PIN, HIGH);
Serial.println("LED OFF");
delay(1000);
Serial.println("Entering sleep mode");
wakeup = false;
while(!wakeup){
__WFI();
}
Serial.println("Woke up!");
}