# Tuyaos/spi

> TuyaOS SPI master via tkl_spi: init, send, deinit. SPI、主机、tkl_spi、总线发送。

- Skill: `tuya/tuyaos-spi` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tuya/tuyaos-spi`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tuya/tuyaos-spi/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tuya (https://skillmd.com/u/tuya)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tuya/tuyaos-spi

---


# TuyaOS SPI (`tkl_spi`)

**Demo:** `…/examples/driver_spi/example_driver_spi.c`

## Pattern

```c
#include "tkl_spi.h"
#include "tal_log.h"

#define SPI_ID  0

void app_spi_send(const uint8_t *buf, uint32_t len)
{
    TUYA_SPI_BASE_CFG_T spi_cfg = {0};
    /* role/mode/freq/bitwidth — from demo */
    if (tkl_spi_init(SPI_ID, &spi_cfg) != OPRT_OK) {
        TAL_PR_ERR("spi init fail");
        return;
    }
    tkl_spi_send(SPI_ID, (uint8_t *)buf, len);
    tkl_spi_deinit(SPI_ID);
}
```

## API

| Function | Role |
|----------|------|
| `tkl_spi_init` | open master |
| `tkl_spi_send` | TX |
| `tkl_spi_deinit` | close |

Confirm CS/SCLK/MOSI/MISO pins and SPI id with the user. Full-duplex
`transfer` may exist on some platforms — check vendor headers if needed.

