Wirepas SDK
gpio.h
Go to the documentation of this file.
1/* Copyright 2022 Wirepas Ltd. All Rights Reserved.
2 *
3 * See file LICENSE.txt for full license details.
4 *
5 */
6
12#ifndef GPIO_H_
13#define GPIO_H_
14
15#include <stdint.h>
16
18typedef uint8_t gpio_id_t;
19
21typedef uint8_t gpio_port_t;
22
24typedef uint8_t gpio_pin_t;
25
44
53
69
83
97
99#define IS_RISING_EDGE(event) ((event & GPIO_IN_EVENT_RISING_EDGE) == GPIO_IN_EVENT_RISING_EDGE)
101#define IS_FALLING_EDGE(event) ((event & GPIO_IN_EVENT_FALLING_EDGE) == GPIO_IN_EVENT_FALLING_EDGE)
102
111
126
135
155
165
176
186
197
206
217
230
235uint8_t Gpio_getNumber(void);
236
237#endif /* GPIO_H_ */
gpio_res_e Gpio_inputRead(gpio_id_t id, gpio_level_e *level)
Read the GPIO input level.
uint8_t gpio_id_t
GPIO identification number.
Definition gpio.h:18
gpio_in_mode_cfg_e in_mode_cfg
Definition gpio.h:124
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_outputRead(gpio_id_t id, gpio_level_e *level)
Read the GPIO output level.
gpio_in_event_cb_f event_cb
Definition gpio.h:116
uint8_t gpio_pin_t
GPIO pin number.
Definition gpio.h:24
uint8_t Gpio_getNumber(void)
Get the number of GPIOs.
uint8_t gpio_port_t
GPIO port number.
Definition gpio.h:21
gpio_res_e Gpio_outputToggle(gpio_id_t id)
Toggle GPIO output level.
gpio_res_e Gpio_inputSetCfg(gpio_id_t id, const gpio_in_cfg_t *in_cfg)
Configure a GPIO as an input GPIO.
gpio_in_event_e
GPIO event.
Definition gpio.h:89
@ GPIO_IN_EVENT_FALLING_EDGE
Definition gpio.h:95
@ GPIO_IN_EVENT_RISING_EDGE
Definition gpio.h:93
@ GPIO_IN_EVENT_NONE
Definition gpio.h:91
gpio_res_e Gpio_init(void)
Initialize GPIO module.
gpio_out_mode_cfg_e
GPIO operating mode configuration.
Definition gpio.h:75
@ GPIO_OUT_MODE_OPEN_DRAIN_WITH_PULL_UP
Definition gpio.h:81
@ GPIO_OUT_MODE_OPEN_DRAIN
Definition gpio.h:79
@ GPIO_OUT_MODE_PUSH_PULL
Definition gpio.h:77
gpio_level_e
GPIO logical level.
Definition gpio.h:47
@ GPIO_LEVEL_LOW
Definition gpio.h:49
@ GPIO_LEVEL_HIGH
Definition gpio.h:51
gpio_in_mode_cfg_e
GPIO pull configuration.
Definition gpio.h:59
@ GPIO_IN_PULL_NONE
Definition gpio.h:63
@ GPIO_IN_PULL_UP
Definition gpio.h:67
@ GPIO_IN_DISABLED
Definition gpio.h:61
@ GPIO_IN_PULL_DOWN
Definition gpio.h:65
gpio_level_e level_default
Definition gpio.h:133
void(* gpio_in_event_cb_f)(gpio_id_t id, gpio_in_event_e event)
Callback structure for a GPIO event.
Definition gpio.h:110
gpio_res_e
List of return code.
Definition gpio.h:28
@ GPIO_RES_NO_FREE_IT
Definition gpio.h:42
@ GPIO_RES_INVALID_PARAM
Definition gpio.h:36
@ GPIO_RES_INVALID_DIRECTION
Definition gpio.h:40
@ GPIO_RES_OK
Definition gpio.h:30
@ GPIO_RES_NOT_IMPLEMENTED
Definition gpio.h:34
@ GPIO_RES_INVALID_PIN
Definition gpio.h:38
@ GPIO_RES_UNINITIALIZED
Definition gpio.h:32
gpio_res_e Gpio_outputWrite(gpio_id_t id, gpio_level_e level)
Write 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.
gpio_in_event_e event_cfg
Definition gpio.h:122
gpio_out_mode_cfg_e out_mode_cfg
Definition gpio.h:131
GPIO output configuration.
Definition gpio.h:129
GPIO input configuration.
Definition gpio.h:114