#include "zh_mcp23s17.h"
#define SPI_HOST (SPI_HOST_MAX - 1)
spi_device_handle_t mcp23s17_handle = NULL;
// To speed up transfers, every SPI transfer sends a bunch of lines. This define specifies how many. More means more memory use, // but less overhead for setting up / finishing transfers. Make sure 240 is dividable by this. #define PARALLEL_LINES 16
void app_main(void) { esp_err_t ret; spi_device_handle_t spi; spi_bus_config_t buscfg = { .miso_io_num = 25, .mosi_io_num = 23, .sclk_io_num = 19, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 16 * 320 * 2 + 8};
spi_device_interface_config_t devcfg = {
.clock_speed_hz = 10 * 1000 * 1000, // Clock out at 10 MHz
.mode = 0, // SPI mode 0
.spics_io_num = 22, // CS pin
.queue_size = 7, // We want to be able to queue 7 transactions at a time
// .pre_cb = lcd_spi_pre_transfer_callback, // Specify pre-transfer callback to handle D/C line
};
// Initialize the SPI bus
ret = spi_bus_initialize(SPI_HOST, &buscfg, SPI_DMA_CH_AUTO);
ESP_ERROR_CHECK(ret);
// Attach the LCD to the SPI bus
ret = spi_bus_add_device(SPI_HOST, &devcfg, &mcp23s17_handle);
ESP_ERROR_CHECK(ret);
}
Description
Languages
CMake
100%