![]() |
Wirepas SDK
|
Board-independent GPIO functions. More...
Board-independent GPIO functions.
Definition in file gpio.h.
Go to the source code of this file.
Typedefs | |
| typedef uint8_t | gpio_id_t |
| GPIO identification number. | |
| typedef uint8_t | gpio_port_t |
| GPIO port number. | |
| typedef uint8_t | gpio_pin_t |
| GPIO pin number. | |
| typedef void(* | gpio_in_event_cb_f) (gpio_id_t id, gpio_in_event_e event) |
| Callback structure for a GPIO event. | |
Functions | |
| gpio_res_e | Gpio_init (void) |
| Initialize GPIO module. | |
| gpio_res_e | Gpio_inputSetCfg (gpio_id_t id, const gpio_in_cfg_t *in_cfg) |
| Configure a GPIO as an input GPIO. | |
| gpio_res_e | Gpio_inputRead (gpio_id_t id, gpio_level_e *level) |
| Read the GPIO input level. | |
| gpio_res_e | Gpio_outputSetCfg (gpio_id_t id, const gpio_out_cfg_t *out_cfg) |
| Configure a GPIO as an output GPIO. | |
| gpio_res_e | Gpio_outputWrite (gpio_id_t id, gpio_level_e level) |
| Write GPIO output level. | |
| gpio_res_e | Gpio_outputToggle (gpio_id_t id) |
| Toggle GPIO output level. | |
| gpio_res_e | Gpio_outputRead (gpio_id_t id, gpio_level_e *level) |
| Read the GPIO output level. | |
| gpio_res_e | Gpio_getPin (gpio_id_t id, gpio_port_t *port, gpio_pin_t *pin) |
| Get the GPIO port and pin numbers of the given GPIO id. | |
| uint8_t | Gpio_getNumber (void) |
| Get the number of GPIOs. | |
Data Structures | |
| struct | gpio_in_cfg_t |
| GPIO input configuration. More... | |
| struct | gpio_out_cfg_t |
| GPIO output configuration. More... | |
Enumerations | |
| enum | gpio_res_e { GPIO_RES_OK = 0 , GPIO_RES_UNINITIALIZED = 1 , GPIO_RES_NOT_IMPLEMENTED = 2 , GPIO_RES_INVALID_PARAM = 3 , GPIO_RES_INVALID_PIN = 4 , GPIO_RES_INVALID_DIRECTION = 5 , GPIO_RES_NO_FREE_IT = 6 } |
| List of return code. More... | |
| enum | gpio_level_e { GPIO_LEVEL_LOW , GPIO_LEVEL_HIGH } |
| GPIO logical level. More... | |
| enum | gpio_in_mode_cfg_e { GPIO_IN_DISABLED , GPIO_IN_PULL_NONE , GPIO_IN_PULL_DOWN , GPIO_IN_PULL_UP } |
| GPIO pull configuration. More... | |
| enum | gpio_out_mode_cfg_e { GPIO_OUT_MODE_PUSH_PULL , GPIO_OUT_MODE_OPEN_DRAIN , GPIO_OUT_MODE_OPEN_DRAIN_WITH_PULL_UP } |
| GPIO operating mode configuration. More... | |
| enum | gpio_in_event_e { GPIO_IN_EVENT_NONE = 0 , GPIO_IN_EVENT_RISING_EDGE = 1U << 0U , GPIO_IN_EVENT_FALLING_EDGE = 1U << 1U } |
| GPIO event. More... | |
Macros | |
| #define | IS_RISING_EDGE(event) ((event & GPIO_IN_EVENT_RISING_EDGE) == GPIO_IN_EVENT_RISING_EDGE) |
| Check if event has its rising edge bit set. | |
| #define | IS_FALLING_EDGE(event) ((event & GPIO_IN_EVENT_FALLING_EDGE) == GPIO_IN_EVENT_FALLING_EDGE) |
| Check if event has its falling edge bit set. | |
| typedef void(* gpio_in_event_cb_f) (gpio_id_t id, gpio_in_event_e event) |
| typedef uint8_t gpio_pin_t |
| typedef uint8_t gpio_port_t |
| uint8_t Gpio_getNumber | ( | void | ) |
Get the number of GPIOs.
| gpio_res_e Gpio_getPin | ( | gpio_id_t | id, |
| gpio_port_t * | port, | ||
| gpio_pin_t * | pin | ||
| ) |
Get the GPIO port and pin numbers of the given GPIO id.
| id | Id of the GPIO | |
| [out] | port | Returned GPIO port number |
| [out] | pin | Returned GPIO pin number |
| gpio_res_e Gpio_init | ( | void | ) |
Initialize GPIO module.
Example on use:
| gpio_res_e Gpio_inputRead | ( | gpio_id_t | id, |
| gpio_level_e * | level | ||
| ) |
Read the GPIO input level.
| id | Id of the GPIO | |
| [out] | level | Returned GPIO level (low or high) |
| gpio_res_e Gpio_inputSetCfg | ( | gpio_id_t | id, |
| const gpio_in_cfg_t * | in_cfg | ||
| ) |
Configure a GPIO as an input GPIO.
| id | Id of the GPIO | |
| [in] | in_cfg | GPIO input configuration |
| gpio_res_e Gpio_outputRead | ( | gpio_id_t | id, |
| gpio_level_e * | level | ||
| ) |
Read the GPIO output level.
| id | Id of the GPIO | |
| [out] | level | Returned GPIO level (low or high) |
| gpio_res_e Gpio_outputSetCfg | ( | gpio_id_t | id, |
| const gpio_out_cfg_t * | out_cfg | ||
| ) |
Configure a GPIO as an output GPIO.
| id | Id of the GPIO | |
| [in] | out_cfg | GPIO output configuration |
| gpio_res_e Gpio_outputToggle | ( | gpio_id_t | id | ) |
Toggle GPIO output level.
| id | Id of the GPIO |
| gpio_res_e Gpio_outputWrite | ( | gpio_id_t | id, |
| gpio_level_e | level | ||
| ) |
Write GPIO output level.
| id | Id of the GPIO |
| level | GPIO level (low or high) to write |
| struct gpio_in_cfg_t |
| Data Fields | ||
|---|---|---|
| gpio_in_event_cb_f | event_cb |
Callback called on GPIO events |
| gpio_in_event_e | event_cfg: 2 |
Event configuration. Use | (OR) operator to detect both rising and falling edges. e.g.: .event_cfg = (GPIO_IN_EVENT_RISING_EDGE | GPIO_IN_EVENT_FALLING_EDGE) |
| gpio_in_mode_cfg_e | in_mode_cfg: 2 |
Pull configuration (e.g.: Pull-down) |
| struct gpio_out_cfg_t |
| Data Fields | ||
|---|---|---|
| gpio_level_e | level_default: 1 |
GPIO default logical level (e.g.: Low) |
| gpio_out_mode_cfg_e | out_mode_cfg: 2 |
Operating mode configuration (e.g.: Push-pull) |
| enum gpio_in_event_e |
GPIO event.
| Enumerator | |
|---|---|
| GPIO_IN_EVENT_NONE | No event |
| GPIO_IN_EVENT_RISING_EDGE | Rising edge event |
| GPIO_IN_EVENT_FALLING_EDGE | Falling edge event |
Definition at line 88 of file gpio.h.
| enum gpio_in_mode_cfg_e |
GPIO pull configuration.
| Enumerator | |
|---|---|
| GPIO_IN_DISABLED | input disabled |
| GPIO_IN_PULL_NONE | No pull (floating if no external pull-up or pull-down) |
| GPIO_IN_PULL_DOWN | Pull-down |
| GPIO_IN_PULL_UP | Pull-up |
| enum gpio_level_e |
GPIO logical level.
| Enumerator | |
|---|---|
| GPIO_LEVEL_LOW | The GPIO is low |
| GPIO_LEVEL_HIGH | The GPIO is high |
| enum gpio_out_mode_cfg_e |
GPIO operating mode configuration.
| Enumerator | |
|---|---|
| GPIO_OUT_MODE_PUSH_PULL | Push-pull |
| GPIO_OUT_MODE_OPEN_DRAIN | Open-drain |
| GPIO_OUT_MODE_OPEN_DRAIN_WITH_PULL_UP | Open-drain with pull-up |
Definition at line 74 of file gpio.h.
| enum gpio_res_e |
List of return code.
Definition at line 27 of file gpio.h.
| #define IS_FALLING_EDGE | ( | event | ) | ((event & GPIO_IN_EVENT_FALLING_EDGE) == GPIO_IN_EVENT_FALLING_EDGE) |
| #define IS_RISING_EDGE | ( | event | ) | ((event & GPIO_IN_EVENT_RISING_EDGE) == GPIO_IN_EVENT_RISING_EDGE) |