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