Updated and working SPI for ESP32

This commit is contained in:
dario 2024-04-15 22:50:57 +02:00
parent f29cd6eff2
commit 68a6733dac
3 changed files with 17 additions and 9 deletions

View File

@ -37,7 +37,7 @@ namespace sta
* @param clk * @param clk
* @return ArduinoSPI * @return ArduinoSPI
*/ */
static ArduinoSPI getHSPI( static ArduinoSPI* getHSPI(
const SPISettings & settings, const SPISettings & settings,
Mutex * mutex = sta::Mutex::ALWAYS_FREE, Mutex * mutex = sta::Mutex::ALWAYS_FREE,
uint8_t mosi = STA_ESP32_HSPI_MOSI_DEFAULT, uint8_t mosi = STA_ESP32_HSPI_MOSI_DEFAULT,
@ -54,7 +54,7 @@ namespace sta
* @param clk * @param clk
* @return ArduinoSPI * @return ArduinoSPI
*/ */
static ArduinoSPI getFSPI( static ArduinoSPI* getFSPI(
const SPISettings & settings, const SPISettings & settings,
Mutex * mutex = sta::Mutex::ALWAYS_FREE, Mutex * mutex = sta::Mutex::ALWAYS_FREE,
uint8_t mosi = STA_ESP32_HSPI_MOSI_DEFAULT, uint8_t mosi = STA_ESP32_HSPI_MOSI_DEFAULT,
@ -100,6 +100,8 @@ namespace sta
{ {
public: public:
ArduinoSPIDevice(ArduinoSPI * intf, ArduinoGpioPin * csPin); ArduinoSPIDevice(ArduinoSPI * intf, ArduinoGpioPin * csPin);
ArduinoSPIDevice(ArduinoSPI * intf, uint8_t csPin);
}; };
} // namespace sta } // namespace sta

View File

@ -10,6 +10,8 @@ namespace sta
{ {
STA_ASSERT(intf != nullptr); STA_ASSERT(intf != nullptr);
STA_ASSERT(csPin != nullptr); STA_ASSERT(csPin != nullptr);
csPin_->setState(GpioPinState::GPIO_HIGH);
} }
void SPIDevice::transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size) void SPIDevice::transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size)

View File

@ -6,26 +6,24 @@
namespace sta namespace sta
{ {
#ifdef STA_PLATFORM_ARDUINO_DEVICE_ESP32 #ifdef STA_PLATFORM_ARDUINO_DEVICE_ESP32
ArduinoSPI ArduinoSPI::getHSPI( ArduinoSPI* ArduinoSPI::getHSPI(
const SPISettings & settings, const SPISettings & settings,
Mutex * mutex /* = sta::Mutex::ALWAYS_FREE */, Mutex * mutex /* = sta::Mutex::ALWAYS_FREE */,
uint8_t mosi /* = STA_ESP32_HSPI_MOSI_DEFAULT */, uint8_t mosi /* = STA_ESP32_HSPI_MOSI_DEFAULT */,
uint8_t miso /* = STA_ESP32_HSPI_MISO_DEFAULT */, uint8_t miso /* = STA_ESP32_HSPI_MISO_DEFAULT */,
uint8_t clk /* = STA_ESP32_HSPI_CLK_DEFAULT */) uint8_t clk /* = STA_ESP32_HSPI_CLK_DEFAULT */)
{ {
ArduinoSPI spi(settings, SPIBus::BUS_HSPI, mosi, miso, clk, mutex); return new ArduinoSPI(settings, SPIBus::BUS_HSPI, mosi, miso, clk, mutex);
return spi;
} }
ArduinoSPI ArduinoSPI::getFSPI( ArduinoSPI* ArduinoSPI::getFSPI(
const SPISettings & settings, const SPISettings & settings,
Mutex * mutex /*= sta::Mutex::ALWAYS_FREE */, Mutex * mutex /*= sta::Mutex::ALWAYS_FREE */,
uint8_t mosi /* = STA_ESP32_FSPI_MOSI_DEFAULT */, uint8_t mosi /* = STA_ESP32_FSPI_MOSI_DEFAULT */,
uint8_t miso /* = STA_ESP32_FSPI_MISO_DEFAULT */, uint8_t miso /* = STA_ESP32_FSPI_MISO_DEFAULT */,
uint8_t clk /* = STA_ESP32_FSPI_CLK_DEFAULT */) uint8_t clk /* = STA_ESP32_FSPI_CLK_DEFAULT */)
{ {
ArduinoSPI spi(settings, SPIBus::BUS_FSPI, mosi, miso, clk, mutex); return new ArduinoSPI(settings, SPIBus::BUS_FSPI, mosi, miso, clk, mutex);
return spi;
} }
ArduinoSPI::ArduinoSPI(const SPISettings & settings, SPIBus bus, uint8_t mosi, uint8_t miso, uint8_t clk, Mutex * mutex /* = sta::Mutex::ALWAYS_FREE */) ArduinoSPI::ArduinoSPI(const SPISettings & settings, SPIBus bus, uint8_t mosi, uint8_t miso, uint8_t clk, Mutex * mutex /* = sta::Mutex::ALWAYS_FREE */)
@ -141,6 +139,12 @@ namespace sta
ArduinoSPIDevice::ArduinoSPIDevice(ArduinoSPI * intf, ArduinoGpioPin * csPin) ArduinoSPIDevice::ArduinoSPIDevice(ArduinoSPI * intf, ArduinoGpioPin * csPin)
: SPIDevice{intf, csPin} : SPIDevice{intf, csPin}
{ {
csPin->setState(GpioPinState::GPIO_HIGH);
}
ArduinoSPIDevice::ArduinoSPIDevice(ArduinoSPI * intf, uint8_t csPin)
: SPIDevice{intf, new ArduinoGpioPin(csPin, PinMode::GPIO_OUTPUT)}
{
} }
} // namespace sta } // namespace sta