mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-26 09:45:37 +03:00
Add ability to check for SPI bus busy condition
This commit is contained in:
parent
77f0fb716d
commit
264c094eef
2 changed files with 15 additions and 0 deletions
|
@ -422,6 +422,20 @@ uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t data)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if the bus is currently in the middle of a transmission.
|
||||||
|
*/
|
||||||
|
bool spiIsBusBusy(SPI_TypeDef *instance)
|
||||||
|
{
|
||||||
|
#ifdef STM32F303xC
|
||||||
|
return SPI_GetTransmissionFIFOStatus(instance) != SPI_TransmissionFIFOStatus_Empty || SPI_I2S_GetFlagStatus(instance, SPI_I2S_FLAG_BSY) == SET;
|
||||||
|
#endif
|
||||||
|
#ifdef STM32F10X
|
||||||
|
return SPI_I2S_GetFlagStatus(instance, SPI_I2S_FLAG_TXE) == RESET || SPI_I2S_GetFlagStatus(instance, SPI_I2S_FLAG_BSY) == SET;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
bool spiTransfer(SPI_TypeDef *instance, uint8_t *out, const uint8_t *in, int len)
|
bool spiTransfer(SPI_TypeDef *instance, uint8_t *out, const uint8_t *in, int len)
|
||||||
{
|
{
|
||||||
uint16_t spiTimeout = 1000;
|
uint16_t spiTimeout = 1000;
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
bool spiInit(SPI_TypeDef *instance);
|
bool spiInit(SPI_TypeDef *instance);
|
||||||
void spiSetDivisor(SPI_TypeDef *instance, uint16_t divisor);
|
void spiSetDivisor(SPI_TypeDef *instance, uint16_t divisor);
|
||||||
uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t in);
|
uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t in);
|
||||||
|
bool spiIsBusBusy(SPI_TypeDef *instance);
|
||||||
|
|
||||||
bool spiTransfer(SPI_TypeDef *instance, uint8_t *out, const uint8_t *in, int len);
|
bool spiTransfer(SPI_TypeDef *instance, uint8_t *out, const uint8_t *in, int len);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue