ESP32-C3 SPI外设使用笔记
ESP32-C3 SPI 外围设备概述
ESP32-C3 集成了 3 个 SPI 外设。
- SPI0 和 SPI1 在内部用于访问 ESP32-C3 的附加闪存。
- SPI2 是通用 SPI 控制器。它有一个同名的独立信号总线。总线有 6 条 Cs 线路, 最多可以控制 6 个 Spi salve。
SPI驱动配置
- 通过调用函数
spi_bus_initialize()
初始化 SPI 总线。请务必在结构 spi_bus_config_t中设置正确的 I/O 引脚。,参数-1
设置不需要的信号. - 通过调用函数
spi_bus_add_device()
注册连接到总线的设备。确保配置设备可能需要的任何计时要求与参数。您现在应该已获得设备的句柄,该句柄将在向其发送交易时使用dev_config
. - 要与设备交互,请填写一个或多个
spi_transaction_t
结构,并设置所需的任何传输参数。然后使用轮询传输或中断传输发送指示:- Interrupt(中断)
要么通过将函数调用spi_device_queue_trans()
来排队,并在稍后时间使用函数spi_device_get_trans_result()
查询结果,要么通过将所有请求插入spi_device_transmit()
同步处理所有请求。 - Polling(轮询)
调用函数spi_device_polling_transmit()
发送轮询传输。或者,如果您想在两者之间插入某些东西,请使用spi_device_polling_start()
和spi_device_polling_end()
发送交易。
- Interrupt(中断)
- (可选) 要使设备执行back-to-back 传输,请在传输前调用函数
spi_device_acquire_bus()
,并在传输完成后调用函数spi_device_release_bus()
. - (可选) 卸载SPI驱动,请调用函数
spi_bus_remove_device()
. - (可选)释放SPI 总线
spi_bus_free()
。
未完… 待更新