Bouffalo SDK GPIO input output Печать
Добавил(а) microsin   

Конфигурировать и использовать порты GPIO микроконтроллеров Bouffalo можно очень просто с помощью вызовов SDK.

Функции для управления портами GPIO (определены в bl_gpio.h):

int bl_gpio_enable_output(uint8_t pin, uint8_t pullup, uint8_t pulldown);
int bl_gpio_enable_input(uint8_t pin, uint8_t pullup, uint8_t pulldown);
int bl_gpio_output_set(uint8_t pin, uint8_t value);
int bl_gpio_input_get(uint8_t pin, uint8_t *value);
int bl_gpio_input_get_value(uint8_t pin);
int bl_gpio_int_clear(uint8_t gpioPin, uint8_t intClear);
void bl_gpio_intmask(uint8_t gpiopin, uint8_t mask);
void bl_set_gpio_intmod(uint8_t gpioPin, uint8_t intCtrlMod, uint8_t intTrgMod);
void bl_gpio_register(gpio_ctx_t *pstnode);

Эта функция настраивает ножку порта на вход:

int bl_gpio_enable_input(uint8_t pin, uint8_t pullup, uint8_t pulldown);

Параметр pin указывает номер ножки порта от 0 до 22 включительно. Например, для GPIO8 надо указать 8, или GLB_GPIO_PIN_8 (определено в перечислении GLB_GPIO_Type заголовка bl602_gpio.h). Параметры pullup и pulldown указывают включение подтяжки вверх и вниз соответственно (0 подтяжку выключает, 1 включает).

Эта функция настраивает ножку порта на выход:

int bl_gpio_enable_output(uint8_t pin, uint8_t pullup, uint8_t pulldown);

Управление выходом на примере микроконтроллера BL602:

#include < bl_gpio.h>
 
// С помощью осциллографа можно определить время, которое необходимо
// загрузчику для запуска приложения.
bl_gpio_enable_output(GLB_GPIO_PIN_8, 0, 0);   // Настройка GPIO8 на выход
bl_gpio_output_set(GLB_GPIO_PIN_8, 1);         // Перевод GPIO8 в лог. 1

BL602 start time

Как считать уровень на ножке порта GPIO8:

int pinval = bl_gpio_input_get_value(GLB_GPIO_PIN_8);
if (pinval)
   Beep(10);

[Ссылки]

1. BL602 IoT SDK configure GPIO site:pine64.github.io.