11#ifndef M5_UNIT_COMPONENT_ADAPTER_SPI_HPP
12#define M5_UNIT_COMPONENT_ADAPTER_SPI_HPP
26class AdapterSPI :
public Adapter {
30 explicit SPIImpl(
const uint8_t cs = 0xFF) : _cs{cs}
35 inline virtual SPIClass* getSPI()
39 inline uint8_t cs_pin()
const
44 virtual void beginTransaction()
47 virtual void endTransaction()
56 class SPIClassImpl :
public SPIImpl {
58 SPIClassImpl(SPIClass& serial,
const SPISettings& settings,
const uint8_t cs);
59 inline virtual SPIClass* getSPI()
override
63 virtual void beginTransaction()
override;
64 virtual void endTransaction()
override;
65 virtual m5::hal::error::error_t readWithTransaction(uint8_t* data,
const size_t len)
override;
66 virtual m5::hal::error::error_t writeWithTransaction(
const uint8_t* data,
const size_t len,
67 const uint32_t stop)
override;
68 virtual m5::hal::error::error_t writeWithTransaction(
const uint8_t reg,
const uint8_t* data,
const size_t len,
69 const uint32_t stop)
override;
70 virtual m5::hal::error::error_t writeWithTransaction(
const uint16_t reg,
const uint8_t* data,
const size_t len,
71 const uint32_t stop)
override;
75 SPISettings _settings{};
76 static uint32_t transaction_count;
81 AdapterSPI(SPIClass& spi,
const SPISettings& settings,
const uint8_t cs);
84 inline SPIImpl* impl()
86 return static_cast<SPIImpl*
>(_impl.get());
88 inline const SPIImpl* impl()
const
90 return static_cast<SPIImpl*
>(_impl.get());
93 inline uint8_t cs_pin()
const
95 return impl()->cs_pin();
98 inline virtual void beginTransaction()
override
100 impl()->beginTransaction();
102 inline virtual void endTransaction()
override
104 impl()->endTransaction();
108 AdapterSPI() : Adapter(Adapter::Type::SPI, new SPIImpl())
Definition adapter_base.hpp:35
Definition adapter_spi.hpp:28
Top level namespace of M5stack.
Definition test_helper.hpp:18