项目简介
AceSPI是用于Arduino平台的库,它提供统一接口以选择硬件或软件SPI实现。包含硬件SPI(使用digitalWrite()
和digitalWriteFast()
)和软件SPI(使用shiftOut()
和digitalWriteFast()
)的实现,适用于向SPI从设备发送数据,但不支持从SPI从设备读取数据。
项目的主要特性和功能
- 统一接口:提供
HardSpiInterface
、HardSpiFastInterface
、SimpleSpiInterface
和SimpleSpiFastInterface
四种SPI接口实现。 - 编译时多态性:实现编译时多态,避免运行时多态开销,减少内存消耗。
- 灵活选择:允许用户根据项目需求选择最适合的SPI实现方式。
- 资源优化:提供不同SPI实现方式的资源消耗(闪存和静态内存)信息,帮助用户做出最佳选择。
安装使用步骤
安装库
在Arduino IDE中,打开“库管理器”,搜索“AceSPI”,然后点击安装。
包含头文件
在你的Arduino项目中,包含AceSPI库的头文件: ```cpp
include
```
选择SPI接口
根据需求选择合适的SPI接口实现。例如,使用硬件SPI接口:
cpp
using ace_spi::HardSpiInterface;
初始化SPI接口
在setup()
函数中初始化SPI接口:
cpp
void setup() {
SPI.begin();
spiInterface.begin();
}
发送数据
使用提供的接口方法,如send8()
、send16()
等,向SPI从设备发送数据:
cpp
void loop() {
uint8_t data = 0x55;
spiInterface.send8(data);
delay(1000);
}
资源消耗
闪存和静态内存
HardSpiInterface
:522字节闪存,5字节RAMHardSpiFastInterface
:428字节闪存,1字节RAMSimpleSpiInterface
:480字节闪存,3字节RAMSimpleSpiFastInterface
:62字节闪存,0字节RAM
CPU周期
HardSpiInterface
:平均117个周期HardSpiFastInterface
:平均30个周期SimpleSpiInterface
:平均891个周期SimpleSpiFastInterface
:平均76个周期
系统要求
支持的硬件
- Arduino Nano
- SparkFun Pro Micro
- STM32 Blue Pill
- NodeMCU 1.0
- WeMos D1 Mini
- ESP32 dev board
- Teensy 3.2
工具链
- Arduino IDE 1.8.19
- Arduino CLI 0.20.2
- SpenceKonde ATTinyCore 1.5.2
- Arduino AVR Boards 1.8.4
- Arduino SAMD Boards 1.8.9
- SparkFun AVR Boards 1.1.13
- SparkFun SAMD Boards 1.8.6
- STM32duino 2.2.0
- ESP8266 Arduino 3.0.2
- ESP32 Arduino 2.0.2
- Teensyduino 1.56
许可证
AceSPI库使用MIT许可证,允许用户在商业或非商业项目中自由使用、修改和分发。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】