Skip to main content

spi-master

SPI Master bindings for ESP32 Provides SPI (Serial Peripheral Interface) master functionality for communication with SPI devices

export enum SpiHost {
Spi1 = 0,
Spi2 = 1,
Spi3 = 2
}

export enum SpiDmaChan {
Disabled = 0,
Auto = 1,
Chan1 = 2,
Chan2 = 3
}

export enum SpiError {
Ok = 0,
InvalidArg = 1,
InvalidState = 2,
NotSupported = 3,
Timeout = 4,
NoMemory = 5
}


// @ts-ignore
@external("spi_master", "spi_bus_config_create")
export declare function spiBusConfigCreate(): u32;


// @ts-ignore
@external("spi_master", "spi_bus_config_destroy")
export declare function spiBusConfigDestroy(config: u32): void;


// @ts-ignore
@external("spi_master", "spi_bus_config_set_mosi_io_num")
export declare function spiBusConfigSetMosiIoNum(config: u32, mosiIoNum: i32): void;


// @ts-ignore
@external("spi_master", "spi_bus_config_set_sclk_io_num")
export declare function spiBusConfigSetSclkIoNum(config: u32, sclkIoNum: i32): void;


// @ts-ignore
@external("spi_master", "spi_bus_initialize")
export declare function spiBusInitialize(hostId: i32, busConfig: u32, dmaChan: i32): SpiError;


// @ts-ignore
@external("spi_master", "spi_device_interface_config_create")
export declare function spiDeviceInterfaceConfigCreate(): u32;


// @ts-ignore
@external("spi_master", "spi_device_interface_config_set_spics_io_num")
export declare function spiDeviceInterfaceConfigSetSpicsIoNum(config: u32, spicsIoNum: i32): void;


// @ts-ignore
@external("spi_master", "spi_device_interface_config_destroy")
export declare function spiDeviceInterfaceConfigDestroy(config: u32): void;


// @ts-ignore
@external("spi_master", "spi_bus_add_device")
export declare function spiBusAddDevice(hostId: i32, devConfig: u32, handle: u32): SpiError;


// @ts-ignore
@external("spi_master", "spi_transaction_create")
export declare function spiTransactionCreate(): u32;


// @ts-ignore
@external("spi_master", "spi_transaction_set_length")
export declare function spiTransactionSetLength(transaction: u32, length: i32): void;


// @ts-ignore
@external("spi_master", "spi_transaction_set_tx_buffer")
export declare function spiTransactionSetTxBuffer(transaction: u32, txBuffer: u32): SpiError;


// @ts-ignore
@external("spi_master", "spi_transaction_destroy")
export declare function spiTransactionDestroy(transaction: u32): void;


// @ts-ignore
@external("spi_master", "spi_device_transmit")
export declare function spiDeviceTransmit(handle: u32, transaction: u32): SpiError;