PicoWAN SDK Documentation
gpio.h
Go to the documentation of this file.
1 
31 #ifndef _GPIO_H_
32 #define _GPIO_H_
33 
34 #include <stdint.h>
35 #include <arch.h>
36 
37 typedef enum {
38  GPIO_PMODE_INPUT,
39  GPIO_PMODE_OUTPUT,
40  GPIO_PMODE_ANALOG,
41  GPIO_PMODE_ALT_FUNC,
42 } gpio_pin_mode_t;
43 
44 typedef enum {
45  GPIO_OMODE_OPEN_DRAIN,
46  GPIO_OMODE_PUSH_PULL,
47 } gpio_output_mode_t;
48 
49 typedef enum {
50  GPIO_PUPD_NONE,
51  GPIO_PUPD_UP,
52  GPIO_PUPD_DOWN,
53 } gpio_pupd_t;
54 
55 typedef enum {
56  GPIO_OSPEED_LOW,
57  GPIO_OSPEED_MED,
58  GPIO_OSPEED_HIGH,
59  GPIO_OSPEED_VHIGH,
60 } gpio_output_speed_t;
61 
62 typedef enum {
63  GPIO_IRQ_MODE_NONE,
64  GPIO_IRQ_MODE_FALLING,
65  GPIO_IRQ_MODE_RISING,
66  GPIO_IRQ_MODE_BOTH,
67 } gpio_irq_mode_t;
68 
69 
82 void gpio_cfg_pin(gpio_port_t port, uint8_t pin, gpio_pin_mode_t mode, gpio_output_mode_t omode, gpio_pupd_t pull, gpio_output_speed_t speed, uint8_t alt);
83 
91 void gpio_set_pin(gpio_port_t port, uint8_t pin, uint8_t state);
92 
99 void gpio_toggle_pin(gpio_port_t port, uint8_t pin);
100 
109 uint8_t gpio_get_pin(gpio_port_t port, uint8_t pin);
110 
118 void gpio_config_irq(gpio_port_t port, uint8_t pin, gpio_irq_mode_t mode);
119 
120 #endif /* _GPIO_H_ */
void gpio_set_pin(gpio_port_t port, uint8_t pin, uint8_t state)
Sets the state of a particular pin configured in output mode.
Definition: gpio.c:123
void gpio_toggle_pin(gpio_port_t port, uint8_t pin)
Toggles the state of a particular pin configured in output mode.
Definition: gpio.c:130
void gpio_cfg_pin(gpio_port_t port, uint8_t pin, gpio_pin_mode_t mode, gpio_output_mode_t omode, gpio_pupd_t pull, gpio_output_speed_t speed, uint8_t alt)
Configures the behavior of a particular pin.
Definition: gpio.c:50
uint8_t gpio_get_pin(gpio_port_t port, uint8_t pin)
Gets the state of a particular pin.
Definition: gpio.c:137
void gpio_config_irq(gpio_port_t port, uint8_t pin, gpio_irq_mode_t mode)
Configures the IRQ mode of a pin.
Definition: gpio.c:144