I have a KY-040 rotary encoder with a push button wired to an ESP8266. My objective is to be able to detect if the button is pressed or not on boot. 

In the below code, if I hold the button down and power on the ESP8266, neither "IT'S STARTED" or "IT'S LOOPING" is printed in the serial monitor, even if I release the button. If I don't press the button, the code works as expected and prints "IT'S STARTED" followed by "IT'S LOOPING". It's as though the code gets stuck/halted if I press the button on boot.

Can someone explain why this is happening?

I would also appreciate suggestions on how I can detect the status (pressed/not pressed) of the button when the ESP8266 is powered up.

Here is my code:

```cpp
void setup() {
  pinMode(D3, INPUT_PULLUP);
  Serial.begin(115200);
  Serial.println("IT'S STARTED");
}

void loop() {
  Serial.println("IT'S LOOPING");
  delay(1000);
}
```