Skip to main content

gpio

GPIO (General Purpose Input/Output) bindings for ESP32 Provides functions to control GPIO pins, set their direction, and read/write values

export enum GpioMode {
Disable = 0,
Input = 1,
Output = 2,
OutputOd = 3,
InputOutputOd = 4,
InputOutput = 5
}

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

export enum GpioPull {
PullupDisable = 0,
PullupEnable = 1,
PulldownDisable = 2,
PulldownEnable = 3
}

export enum GpioIntType {
IntrDisable = 0,
IntrPosedge = 1,
IntrNegedge = 2,
IntrAnyedge = 3,
IntrLowLevel = 4,
IntrHighLevel = 5
}


// @ts-ignore
@external("gpio", "gpio_set_level")
export declare function gpioSetLevel(gpioNum: u32, level: u32): GpioError;


// @ts-ignore
@external("gpio", "gpio_reset_pin")
export declare function gpioResetPin(gpioNum: u32): GpioError;


// @ts-ignore
@external("gpio", "gpio_set_direction")
export declare function gpioSetDirection(gpioNum: u32, mode: GpioMode): GpioError;


// @ts-ignore
@external("gpio", "gpio_config")
export declare function gpioConfig(pinBitMask: u64, mode: GpioMode, pullUpEn: GpioPull, pullDownEn: GpioPull, intrType: GpioIntType): GpioError;


// @ts-ignore
@external("gpio", "gpio_get_level")
export declare function gpioGetLevel(gpioNum: u32): u32;