Hallo,
ich habe den SPI-Bus hier auf dem Oszi-Bildschirm. Alles verhält sich so
wie es es sein muss. Ich sende Daten, kann Register beschreiben usw.
Doch wenn ich nun versuch Daten aus dem Baustein zu lesen, so erhalte
ich stets 0.
1 | // Zieht CS auf LOW
|
2 | CS_SELECT;
|
3 | // Sendet die Adresse + READ
|
4 | SPI_SendChar(READ_VALUE);
|
5 | // Das zu lesende Register
|
6 | SPI_SendChar(reg);
|
7 | // Damit die Clock weiterläuft
|
8 | SPI_SendChar(0x00);
|
9 | // Wartet bis Daten vorhanden sind
|
10 | while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET);
|
11 | // Daten auslesen
|
12 | retvalue = SPI_I2S_ReceiveData(SPI2);
|
13 | // Zieht CS auf HIGH
|
14 | CS_UNSELECT;
|
15 | return retvalue;
|
Warum lese ich ständig 0 aus? Auf dem Oszi werden die Daten vom Baustein
bei meiner 0x00 auf die MISO Leitung geschrieben. Doch auslesen tu ich
nichts. Die Funktion SPI_SendChar hält alle Timings ein und sendet
einfach auf den Bus. Das klappt ja auch...
Weiß hier Jemand Rat?