libxr 1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
spi.hpp
1#pragma once
2
3#include "libxr.hpp"
4
5namespace LibXR
6{
7
12class SPI
13{
14 public:
20 {
21 LOW = 0,
22 HIGH = 1
23 };
24
29 enum class ClockPhase : uint8_t
30 {
31 EDGE_1 = 0,
32 EDGE_2 = 1
33 };
34
40
50
62
66 SPI() {}
67
75 virtual ErrorCode ReadAndWrite(RawData read_data, ConstRawData write_data,
76 OperationRW &op) = 0;
77
84 virtual ErrorCode Read(RawData read_data, OperationRW &op)
85 {
86 return ReadAndWrite(read_data, ConstRawData(nullptr, 0), op);
87 }
88
95 virtual ErrorCode Write(ConstRawData write_data, OperationRW &op)
96 {
97 return ReadAndWrite(RawData(nullptr, 0), write_data, op);
98 }
99
105 virtual ErrorCode SetConfig(Configuration config) = 0;
106
116 virtual ErrorCode MemWrite(uint16_t reg, ConstRawData write_data, OperationRW &op) = 0;
117
127 virtual ErrorCode MemRead(uint16_t reg, RawData read_data, OperationRW &op) = 0;
128};
129
130} // namespace LibXR
常量原始数据封装类。 A class for encapsulating constant raw data.
原始数据封装类。 A class for encapsulating raw data.
串行外设接口(SPI)抽象类。Abstract class for Serial Peripheral Interface (SPI).
Definition spi.hpp:13
ClockPhase
定义 SPI 时钟相位。Defines the SPI clock phase.
Definition spi.hpp:30
@ EDGE_2
在第二个时钟边沿采样数据。Data sampled on the second clock edge.
@ EDGE_1
在第一个时钟边沿采样数据。Data sampled on the first clock edge.
virtual ErrorCode MemWrite(uint16_t reg, ConstRawData write_data, OperationRW &op)=0
向 SPI 设备的寄存器写入数据。 Writes data to a specific register of the SPI device.
virtual ErrorCode SetConfig(Configuration config)=0
设置 SPI 配置参数。Sets SPI configuration parameters.
virtual ErrorCode Write(ConstRawData write_data, OperationRW &op)
进行 SPI 写入操作。Performs SPI write operation.
Definition spi.hpp:95
virtual ErrorCode Read(RawData read_data, OperationRW &op)
进行 SPI 读取操作。Performs SPI read operation.
Definition spi.hpp:84
virtual ErrorCode MemRead(uint16_t reg, RawData read_data, OperationRW &op)=0
从 SPI 设备的寄存器读取数据。 Reads data from a specific register of the SPI device.
SPI()
默认构造函数。Default constructor.
Definition spi.hpp:66
virtual ErrorCode ReadAndWrite(RawData read_data, ConstRawData write_data, OperationRW &op)=0
进行 SPI 读写操作。Performs SPI read and write operations.
ClockPolarity
定义 SPI 时钟极性。Defines the SPI clock polarity.
Definition spi.hpp:20
@ LOW
时钟空闲时为低电平。Clock idle low.
@ HIGH
时钟空闲时为高电平。Clock idle high.
LibXR Color Control Library / LibXR终端颜色控制库
constexpr auto min(T1 a, T2 b) -> typename std::common_type< T1, T2 >::type
计算两个数的最小值
Operation< ErrorCode > WriteOperation
Write operation type.
Definition libxr_rw.hpp:271
存储 SPI 配置参数的结构体。Structure for storing SPI configuration parameters.
Definition spi.hpp:46
ClockPhase clock_phase
SPI 时钟相位。SPI clock phase.
Definition spi.hpp:48
ClockPolarity clock_polarity
SPI 时钟极性。SPI clock polarity.
Definition spi.hpp:47
存储 SPI 读写操作信息的结构体。Structure for storing SPI read/write operation information.
Definition spi.hpp:57
OperationRW op
读写操作类型。Type of read/write operation.
Definition spi.hpp:60
ConstRawData write_data
待写入的数据缓冲区。Buffer for data to be written.
Definition spi.hpp:59
RawData read_data
读取的数据缓冲区。Buffer for storing read data.
Definition spi.hpp:58