HAL  v0.6.1
Hardware Abstraction Layer
Loading...
Searching...
No Matches
GPIO

General Purposes Input & Output. More...

Collaboration diagram for GPIO:

Typedefs

typedef uint16_t gpio_pin_t
 
typedef void(* hal_gpio_callback) (const gpio_pin_t pin)
 GPIO external interrupt callback function prototype.
 

Enumerations

enum  gpio_result_t {
  GPIO_RESULT_OK ,
  GPIO_RESULT_INVALID ,
  GPIO_RESULT_UNSUPPORTED ,
  GPIO_RESULT_ERR ,
  TOTAL_GPIO_RESULT
}
 
enum  gpio_state_t {
  GPIO_STATE_LOW ,
  GPIO_STATE_HIGH ,
  GPIO_STATE_HIGH_Z ,
  TOTAL_GPIO_STATE
}
 
enum  gpio_mode_t {
  GPIO_MODE_IN ,
  GPIO_MODE_OUT ,
  GPIO_MODE_INPUT_PULLUP ,
  GPIO_MODE_INPUT_PULLDOWN ,
  GPIO_MODE_OUTPUT_PULLUP ,
  GPIO_MODE_OUTPUT_PULLDOWN ,
  GPIO_MODE_OUTPUT_OPEN_DRAIN ,
  TOTAL_GPIO_MODE
}
 
enum  gpio_int_mode_t {
  GPIO_INT_MODE_RISING ,
  GPIO_INT_MODE_FALLING ,
  GPIO_INT_MODE_CHANGE ,
  GPIO_INT_MODE_ON_LOW ,
  GPIO_INT_MODE_ON_HIGH ,
  TOTAL_GPIO_INT_MODE
}
 

Functions

gpio_result_t hal_gpio_init (void)
 Initialize GPIO as a whole.
 
gpio_result_t hal_gpio_set_mode (const gpio_pin_t pin, const gpio_mode_t mode)
 Initialize pin mode.
 
gpio_result_t hal_gpio_set_interrupt (const gpio_pin_t pin, const gpio_int_mode_t mode, const hal_gpio_callback callback)
 Attach interrupt to pin.
 
gpio_state_t hal_gpio_read (const gpio_pin_t pin)
 Read digital pin state.
 
gpio_result_t hal_gpio_write (const gpio_pin_t pin, const gpio_state_t state)
 Set digital pin state.
 

Detailed Description

General Purposes Input & Output.

Typedef Documentation

◆ gpio_pin_t

typedef uint16_t gpio_pin_t

◆ hal_gpio_callback

typedef void(* hal_gpio_callback) (const gpio_pin_t pin)

#include <gpio/public_inc/hal_gpio.h>

GPIO external interrupt callback function prototype.

Parameters
[in]pinInterrupt pin

Enumeration Type Documentation

◆ gpio_int_mode_t

#include <gpio/public_inc/hal_gpio.h>

Enumerator
GPIO_INT_MODE_RISING 

interrupt on rising edge

GPIO_INT_MODE_FALLING 

interrupt on falling edge

GPIO_INT_MODE_CHANGE 

interrupt on pin state changes

GPIO_INT_MODE_ON_LOW 

interrupt when pin state is low

GPIO_INT_MODE_ON_HIGH 

interrupt when pin state is high

TOTAL_GPIO_INT_MODE 

◆ gpio_mode_t

#include <gpio/public_inc/hal_gpio.h>

Enumerator
GPIO_MODE_IN 
GPIO_MODE_OUT 
GPIO_MODE_INPUT_PULLUP 
GPIO_MODE_INPUT_PULLDOWN 
GPIO_MODE_OUTPUT_PULLUP 
GPIO_MODE_OUTPUT_PULLDOWN 
GPIO_MODE_OUTPUT_OPEN_DRAIN 
TOTAL_GPIO_MODE 

◆ gpio_result_t

#include <gpio/public_inc/hal_gpio.h>

Enumerator
GPIO_RESULT_OK 

No error.

GPIO_RESULT_INVALID 

Operation invalid.

GPIO_RESULT_UNSUPPORTED 

Operation not supported.

GPIO_RESULT_ERR 

Error occurred.

TOTAL_GPIO_RESULT 

◆ gpio_state_t

#include <gpio/public_inc/hal_gpio.h>

Enumerator
GPIO_STATE_LOW 
GPIO_STATE_HIGH 
GPIO_STATE_HIGH_Z 
TOTAL_GPIO_STATE 

Function Documentation

◆ hal_gpio_init()

gpio_result_t hal_gpio_init ( void )

#include <gpio/public_inc/hal_gpio.h>

Initialize GPIO as a whole.

gpio_result_t hal_gpio_init(void)
Initialize GPIO as a whole.
gpio_result_t
Definition hal_gpio.h:46
Return values
GPIO_RESULT_OKSuccess initialize GPIO
GPIO_RESULT_INVALIDConfiguration attributes invalid
GPIO_RESULT_UNSUPPORTEDOperation not supported
GPIO_RESULT_ERRFailed initialize GPIO

◆ hal_gpio_read()

gpio_state_t hal_gpio_read ( const gpio_pin_t pin)

#include <gpio/public_inc/hal_gpio.h>

Read digital pin state.

gpio_state_t pin_state = hal_gpio_read( 13U );
gpio_state_t
Definition hal_gpio.h:56
gpio_state_t hal_gpio_read(const gpio_pin_t pin)
Read digital pin state.
Parameters
[in]pinPin number
Returns
Pin status

◆ hal_gpio_set_interrupt()

gpio_result_t hal_gpio_set_interrupt ( const gpio_pin_t pin,
const gpio_int_mode_t mode,
const hal_gpio_callback callback )

#include <gpio/public_inc/hal_gpio.h>

Attach interrupt to pin.

void callback( const gpio_pin_t pin );
&callback );
gpio_result_t hal_gpio_set_interrupt(const gpio_pin_t pin, const gpio_int_mode_t mode, const hal_gpio_callback callback)
Attach interrupt to pin.
uint16_t gpio_pin_t
Definition hal_gpio.h:35
@ GPIO_INT_MODE_RISING
interrupt on rising edge
Definition hal_gpio.h:79
Parameters
[in]pinPin number
[in]modeInterrupt mode
[in]callbackInterrupt handler will return interrupt pin matched
Return values
GPIO_RESULT_OKSuccess attach interrupt to a pin
GPIO_RESULT_INVALIDInvalid interrupt pin or selected mode
GPIO_RESULT_ERRFailed attach interrupt to a pin

◆ hal_gpio_set_mode()

gpio_result_t hal_gpio_set_mode ( const gpio_pin_t pin,
const gpio_mode_t mode )

#include <gpio/public_inc/hal_gpio.h>

Initialize pin mode.

gpio_result_t result = hal_gpio_set_mode( 13U, GPIO_MODE_INPUT );
gpio_result_t hal_gpio_set_mode(const gpio_pin_t pin, const gpio_mode_t mode)
Initialize pin mode.
Parameters
[in]pinPin number
[in]modePin mode
Return values
GPIO_RESULT_OKSuccess initialize pin mode
GPIO_RESULT_ERRFailed initialize pin mode

◆ hal_gpio_write()

gpio_result_t hal_gpio_write ( const gpio_pin_t pin,
const gpio_state_t state )

#include <gpio/public_inc/hal_gpio.h>

Set digital pin state.

gpio_result_t hal_gpio_write(const gpio_pin_t pin, const gpio_state_t state)
Set digital pin state.
@ GPIO_STATE_LOW
Definition hal_gpio.h:57
Parameters
[in]pinPin number
[in]stateDesired pin state
Return values
GPIO_RESULT_OKSuccess set digital pin state
GPIO_RESULT_ERRFailed set digital pin state