| name | tuyaos/gpio |
| description | TuyaOS on-chip GPIO via tkl_gpio: output, input, edge IRQ. GPIO、引脚、电平、中断、tkl_gpio、拉高拉低。 |
| when_to_use | Use for raw digital pins on TuyaOS. For catalogued LED/button product logic, still use tkl_gpio unless the app already has a higher helper. |
| id | tuyaos-gpio |
| surfaces | ["embedded"] |
| tags | ["gpio","tuyaos","tkl_gpio"] |
TuyaOS GPIO (tkl_gpio)
Demo: apps/tuyaos_demo_examples/src/examples/driver_gpio/example_driver_gpio.c
Confirm first
- Output pin / input pin / IRQ pin numbers (
TUYA_GPIO_NUM_x) — platform-specific.
- Pull mode and IRQ edge (rise/fall).
Minimal pattern
#include "tuya_cloud_types.h"
#
{
()args;
}
{
TUYA_GPIO_BASE_CFG_T out_cfg = {
.mode = TUYA_GPIO_PUSH_PULL,
.direct = TUYA_GPIO_OUTPUT,
.level = TUYA_GPIO_LEVEL_LOW,
};
tkl_gpio_init(GPIO_OUT_PIN, &out_cfg);
tkl_gpio_write(GPIO_OUT_PIN, TUYA_GPIO_LEVEL_HIGH);
TUYA_GPIO_BASE_CFG_T in_cfg = {
.mode = TUYA_GPIO_PULLUP,
.direct = TUYA_GPIO_INPUT,
};
tkl_gpio_init(GPIO_IN_PIN, &in_cfg);
TUYA_GPIO_LEVEL_E lvl;
tkl_gpio_read(GPIO_IN_PIN, &lvl);
tkl_gpio_init(GPIO_IRQ_PIN, &in_cfg);
TUYA_GPIO_IRQ_T irq = {
.mode = TUYA_GPIO_IRQ_FALL,
.cb = gpio_irq_cb,
.arg = ,
};
tkl_gpio_irq_init(GPIO_IRQ_PIN, &irq);
tkl_gpio_irq_enable(GPIO_IRQ_PIN);
}