Files
hantai_project/code/esp32c3_espidf/main/spi.c
T
2026-02-18 20:08:58 +08:00

61 lines
1.6 KiB
C

#include "spi.h"
#define 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(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(SPI_HOST, &devcfg, &lcd_spi);
if (ret != ESP_OK)
{
ESP_LOGE(TAG, "SPI 设备配置失败");
return;
}
}