5 - Utiliser un "bouton poussoir" avec un "GPIO in" : Différence entre versions

De Wiki L.A.B
Aller à : navigation, rechercher
(Utiliser un "bouton poussoir" avec un "GPIO in")
(Utiliser un "bouton poussoir" avec un "GPIO in")
Ligne 17 : Ligne 17 :
  
  
 +
== EXTI ==
  
  
 
+
  void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
+
  {
{
+
  if ( GPIO_Pin == GPIO_PIN_13 )
if ( GPIO_Pin == GPIO_PIN_13 )
+
  {
{
+
    GPIO_PinState PinState;
  GPIO_PinState PinState;
+
    PinState = HAL_GPIO_ReadPin( GPIOC, GPIO_PIN_13);
  PinState = HAL_GPIO_ReadPin( GPIOC, GPIO_PIN_13);
+
    if ( PinState == GPIO_PIN_RESET )
  if ( PinState == GPIO_PIN_RESET )
+
    ButtonPressed = 1;
  ButtonPressed = 1;
+
    else
  else
+
    ButtonPressed = 0;
  ButtonPressed = 0;
+
  }  
}
+
  }
}
+

Version du 15 décembre 2017 à 17:58

Utiliser un "bouton poussoir" avec un "GPIO in"

Dans cet atelier, on va regarder comment utiliser des GPIO in pour connecter un bouton poussoir.
Dans notre exemple nous allons utiliser la carte “Nucleo64” de référence “NUCLEO-L476RE”.


  while ( ButtonPressed == 0 )                        // block until button pressed
  {
   GPIO_PinState PinState;
   PinState = HAL_GPIO_ReadPin( GPIOC, GPIO_PIN_13);  // get current state of pin
   if ( PinState == GPIO_PIN_RESET )
    ButtonPressed = 1;
   else
    ButtonPressed = 0;
  }
  HAL_GPIO_WritePin( GPIOA, GPIO_PIN_5, GPIO_PIN_SET);


EXTI

 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)  
 {
  if ( GPIO_Pin == GPIO_PIN_13 )
  {
   GPIO_PinState PinState;
   PinState = HAL_GPIO_ReadPin( GPIOC, GPIO_PIN_13);
   if ( PinState == GPIO_PIN_RESET )
    ButtonPressed = 1;
   else
    ButtonPressed = 0;
  } 
 }