Estoy convirtiendo la biblioteca arduino-nrf905 para stm8s. Hay una función spi en la biblioteca arduino, es SPI.Transfer (uint8_t reg). Esta función puede escribir y leer spi. Pero, hay dos funciones en la biblioteca peripharel stm8s. Estas funciones son SPI_SendData (uint8_t reg) y SPI_ReceiveData (void).
SPI.transfer código de la biblioteca arduino:
byte SPIClass::transfer(byte _data) {
SPDR = _data;
while (!(SPSR & _BV(SPIF)))
;
return SPDR;
}
SPI_SendData de la biblioteca STM8S:
void SPI_SendData(uint8_t Data)
{
SPI->DR = Data; /* Write in the DR register the data to be sent*/
}
SPI_ReceiveData de stm8s
uint8_t SPI_ReceiveData(void)
{
return ((uint8_t)SPI->DR); /* Return the data in the DR register*/
}
Quiero convertir este código a stm8s, pero no funciona.
Código Arduino:
((uint8_t*)data)[i] = spi_transfer(NRF905_CMD_NOP);
Código STM8S:
SPI_SendData(NRF905_CMD_NOP);
((uint8_t*)data)[i] = SPI_ReceiveData();
¡Gracias!