diff --git a/stm32h7/spi/SpiComIF.cpp b/stm32h7/spi/SpiComIF.cpp index 8a185a2..877c0eb 100644 --- a/stm32h7/spi/SpiComIF.cpp +++ b/stm32h7/spi/SpiComIF.cpp @@ -99,7 +99,7 @@ ReturnValue_t SpiComIF::initializeInterface(CookieIF *cookie) { auto gpioPort = spiCookie->getChipSelectGpioPort(); GPIO_InitTypeDef chipSelect = {}; - chipSelect.Pin = GPIO_PIN_14; + chipSelect.Pin = gpioPin; chipSelect.Mode = GPIO_MODE_OUTPUT_PP; HAL_GPIO_Init(gpioPort, &chipSelect); HAL_GPIO_WritePin(gpioPort, gpioPin, GPIO_PIN_SET); @@ -121,13 +121,16 @@ ReturnValue_t SpiComIF::sendMessage(CookieIF *cookie, const uint8_t *sendData, s } switch(transferMode) { case(spi::TransferModes::POLLING): { - return handlePollingSendOperation(iter, spiCookie, sendData, sendLen); + return handlePollingSendOperation(iter->second.replyBuffer.data(), spiCookie, sendData, + sendLen); } case(spi::TransferModes::INTERRUPT): { - break; + return handleInterruptSendOperation(iter->second.replyBuffer.data(), spiCookie, sendData, + sendLen); } case(spi::TransferModes::DMA): { - break; + return handleDmaSendOperation(iter->second.replyBuffer.data(), spiCookie, sendData, + sendLen); } } return HasReturnvaluesIF::RETURN_OK; @@ -149,15 +152,14 @@ ReturnValue_t SpiComIF::readReceivedMessage(CookieIF *cookie, uint8_t **buffer, return HasReturnvaluesIF::RETURN_OK; } -ReturnValue_t SpiComIF::handlePollingSendOperation(SpiDeviceMapIter iter, SpiCookie *spiCookie, +ReturnValue_t SpiComIF::handlePollingSendOperation(uint8_t* recvPtr, SpiCookie *spiCookie, const uint8_t *sendData, size_t sendLen) { auto gpioPort = spiCookie->getChipSelectGpioPort(); auto gpioPin = spiCookie->getChipSelectGpioPin(); spiMutex->lockMutex(timeoutType, timeoutMs); HAL_GPIO_WritePin(gpioPort, gpioPin, GPIO_PIN_RESET); auto result = HAL_SPI_TransmitReceive(spiHandle, const_cast(sendData), - iter->second.replyBuffer.data(), - sendLen, defaultPollingTimeout); + recvPtr, sendLen, defaultPollingTimeout); HAL_GPIO_WritePin(gpioPort, gpioPin, GPIO_PIN_SET); spiMutex->unlockMutex(); switch(result) { @@ -192,3 +194,13 @@ ReturnValue_t SpiComIF::handlePollingSendOperation(SpiDeviceMapIter iter, SpiCoo } return HasReturnvaluesIF::RETURN_OK; } + +ReturnValue_t SpiComIF::handleInterruptSendOperation(uint8_t* recvPtr, SpiCookie* spiCookie, + const uint8_t * sendData, size_t sendLen) { + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t SpiComIF::handleDmaSendOperation(uint8_t* recvPtr, SpiCookie* spiCookie, + const uint8_t * sendData, size_t sendLen) { + return HasReturnvaluesIF::RETURN_OK; +} diff --git a/stm32h7/spi/SpiComIF.h b/stm32h7/spi/SpiComIF.h index 0826e8c..d166f49 100644 --- a/stm32h7/spi/SpiComIF.h +++ b/stm32h7/spi/SpiComIF.h @@ -81,7 +81,11 @@ private: SpiDeviceMap spiDeviceMap; - ReturnValue_t handlePollingSendOperation(SpiDeviceMapIter iter, SpiCookie* spiCookie, + ReturnValue_t handlePollingSendOperation(uint8_t* recvPtr, SpiCookie* spiCookie, + const uint8_t * sendData, size_t sendLen); + ReturnValue_t handleInterruptSendOperation(uint8_t* recvPtr, SpiCookie* spiCookie, + const uint8_t * sendData, size_t sendLen); + ReturnValue_t handleDmaSendOperation(uint8_t* recvPtr, SpiCookie* spiCookie, const uint8_t * sendData, size_t sendLen); };