SPI STM32 fullduplex - chyba ve funkci read

Michal Grunt michal.grunt na vynet.cz
Pátek Červenec 4 22:46:31 CEST 2014


Tak mám nějakou chybu ve funkci W5100_Read. Vrací mi to pořád jenom 0. Zkoušel jsem různé variace/úpravy co jsem našel na internetu, ale pořád mi to vrací nulu. Neví někdo kde by mohl být problém? W5100_Write funguje, protože jsem modul nakonfiguroval a ping běží. Děkuji.

unsigned char W5100_Read(unsigned int addr)
{
 unsigned char data;
 unsigned char dummy;

GPIO_ResetBits(W5100_CS_PORT, W5100_CS_PIN);
SPI_ReadWrite8(W5100_READ_OPCODE);  //0xff
SPI_ReadWrite8((addr & 0xff00) >> 8);
SPI_ReadWrite8((addr & 0xff));
while( SPI1->SR & SPI_I2S_FLAG_BSY );
temp = (uint8_t)SPI_ReadWrite8(0xff);
GPIO_SetBits(W5100_CS_PORT, W5100_CS_PIN);
return temp;

}

uint8_t SPI_ReadWrite8(uint8_t out) {
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) {
}
SPI_SendData8(SPI1, out);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET) {
}
return SPI_ReceiveData8(SPI1);
}


Další informace o konferenci Hw-list