title: STM32F401RE-Nucleo LED and BUTTON's example
body: <p>I am trying to run a simple program on my new Nucleo board,</p>
  
  <p>I made this program in order to turn on and off the green led when I press the user's button (the blue one),</p>
  
  <pre><code>#include "stm32f4xx.h"
  #include "stm32f4xx_nucleo.h"
  #include "system_stm32f4xx.h"
  #include "stm32f4xx_hal_gpio.h"
  #include "stm32f4xx_hal_rcc.h"
  
  GPIO_InitTypeDef GPIO_InitStructure; 
  
  int main(void) {
  
      HAL_Init(); 
  
      __GPIOA_CLK_ENABLE();
      GPIO_InitStructure.Pin   = GPIO_PIN_5;
      GPIO_InitStructure.Mode  = GPIO_MODE_OUTPUT_PP;    
      GPIO_InitStructure.Pull  = GPIO_PULLUP;
      GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;  
      HAL_GPIO_Init(GPIOA, &amp;GPIO_InitStructure);    
  
      __GPIOC_CLK_ENABLE();
      GPIO_InitStructure.Pin   = GPIO_PIN_13;
      GPIO_InitStructure.Mode  = GPIO_MODE_INPUT;
      GPIO_InitStructure.Pull  = GPIO_PULLDOWN;
      GPIO_InitStructure.Speed = GPIO_SPEED_FAST;
      HAL_GPIO_Init(GPIOC, &amp;GPIO_InitStructure);
  
      while (1) {
          if (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13)) {         
              HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); 
          } else {
              HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
          }
      }
  }
  </code></pre>
  
  <p>But I am getting wrong result:</p>
  
  <ul>
  <li>when I press the user's button, nothing happen,</li>
  <li>when I keep pressing the user's button and I restart (by pressing the black button), I get good result,</li>
  </ul>
  
  <p>It seems like the program checks the state of the blue button only at the first run, I don't know why,</p>
  
  <p>Please help me if you have any ideas of what the problem comes from, or if you have a running program  that switch the led on button press.</p>