61 lines
1.6 KiB
C
61 lines
1.6 KiB
C
#include "spi.h"
|
|
|
|
#define USE_SPI_HOST SPI2_HOST
|
|
|
|
static const char *TAG = "SPI_2";
|
|
|
|
spi_device_handle_t lcd_spi;
|
|
|
|
void spi_init()
|
|
{
|
|
ESP_LOGI(TAG, "初始化SPI IO总线");
|
|
esp_err_t ret;
|
|
|
|
// 1. SPI 总线配置
|
|
spi_bus_config_t buscfg = {
|
|
.miso_io_num = VSPI_MISO, // MISO 引脚
|
|
.mosi_io_num = VSPI_MOSI, // MOSI 引脚
|
|
.sclk_io_num = VSPI_SCLK, // 时钟引脚
|
|
.quadwp_io_num = -1, // 不使用 QWP
|
|
.quadhd_io_num = -1, // 不使用 QHD
|
|
.max_transfer_sz = 9600, // 最大传输大小
|
|
// .flags = 0,
|
|
// .intr_flags = 0,
|
|
};
|
|
|
|
// 2. 初始化 SPI 总线
|
|
ret = spi_bus_initialize(USE_SPI_HOST, &buscfg, SPI_DMA_CH_AUTO);
|
|
if (ret != ESP_OK)
|
|
{
|
|
ESP_LOGE(TAG, "IO总线初始化失败");
|
|
return;
|
|
}
|
|
|
|
ESP_LOGI(TAG, "SPI IO总线初始化成功");
|
|
|
|
ESP_LOGI(TAG, "SPI 设备配置");
|
|
|
|
spi_device_interface_config_t devcfg = {
|
|
.command_bits = 0, // 无命令位
|
|
.address_bits = 0, // 无地址位
|
|
.dummy_bits = 0,
|
|
.mode = 0, // SPI 模式 0
|
|
.clock_speed_hz = 80000000, //
|
|
.spics_io_num = -1,
|
|
.queue_size = 7, // 队列深度
|
|
.flags = SPI_DEVICE_NO_DUMMY, // 禁用 dummy 周期
|
|
.input_delay_ns = 0,
|
|
.pre_cb = NULL,
|
|
.post_cb = NULL,
|
|
|
|
};
|
|
|
|
ret = spi_bus_add_device(USE_SPI_HOST, &devcfg, &lcd_spi);
|
|
if (ret != ESP_OK)
|
|
{
|
|
ESP_LOGE(TAG, "SPI 设备配置失败");
|
|
return;
|
|
}
|
|
}
|
|
|