上面那个问题报错 error: 'HSPI_HOST' undeclared (first use in this function); did you mean 'SPI3_HOST'?
时间: 2023-12-10 22:03:36 浏览: 454
非常抱歉,我的回答有误。在 ESP32-C3 上使用 esp-idf 4.3.5 时,HSPI_HOST 确实已经被移除了,你需要使用 SPI3_HOST 替代 HSPI_HOST。
你可以在代码中搜索 HSPI_HOST 并将其替换为 SPI3_HOST。如下所示:
```c
// 替换前
spi_bus_config_t buscfg={
.miso_io_num=PIN_NUM_MISO,
.mosi_io_num=PIN_NUM_MOSI,
.sclk_io_num=PIN_NUM_CLK,
.quadwp_io_num=-1,
.quadhd_io_num=-1,
.max_transfer_sz=PIN_NUM_CLK,
.flags=SPICOMMON_BUSFLAG_MASTER
};
spi_device_interface_config_t devcfg={
.clock_speed_hz=1000000,
.mode=0,
.spics_io_num=PIN_NUM_CS,
.queue_size=7,
.flags=SPI_DEVICE_NO_DUMMY
};
spi_device_handle_t spi;
// 替换后
spi_bus_config_t buscfg={
.miso_io_num=PIN_NUM_MISO,
.mosi_io_num=PIN_NUM_MOSI,
.sclk_io_num=PIN_NUM_CLK,
.quadwp_io_num=-1,
.quadhd_io_num=-1,
.max_transfer_sz=PIN_NUM_CLK,
.flags=SPICOMMON_BUSFLAG_MASTER
};
spi_device_interface_config_t devcfg={
.clock_speed_hz=1000000,
.mode=0,
.spics_io_num=PIN_NUM_CS,
.queue_size=7,
.flags=SPI_DEVICE_NO_DUMMY
};
spi_device_handle_t spi;
esp_err_t ret;
// 替换 HSPI_HOST 为 SPI3_HOST
ret=spi_bus_initialize(SPI3_HOST, &buscfg, 1);
ESP_ERROR_CHECK(ret);
ret=spi_bus_add_device(SPI3_HOST, &devcfg, &spi);
ESP_ERROR_CHECK(ret);
```
这样就可以解决 'HSPI_HOST' undeclared (first use in this function); did you mean 'SPI3_HOST'? 的问题了。
阅读全文