Gast
#2752929
Guten Abend, ich seit einiger Zeit ein Problem mit der SPI-Kommunikation. Für die SPI-Kommunikation verwende ich dazu den DMA für das Senden und Empfangen. Ein SPI-Frame ist 16bit breit. Dieser Mikrocontroller ist der Master. Zuerst sende ich ein Kommando (2 16bit SPI-Frames) an den Slave. Der Slave empfangt das Kommando und löst auf dem Master einen Interrupt aus. Daraufhin sendet der Master so lange 2 16bit SPI-Frames mit Dateninhalt 0, bis der Slave keine Daten mehr sendet. Der DMA für das Senden und Empfangen benutzt jeweils ein 2 16bit Array. Wenn ich zuerst das Kommando sende, dann wird auch ein Interrupt (initiiert vom SLave) auf dem Master ausgelöst. Nun steht aber beim ersten empfangenen 16bit SPI-Frame nicht der gewünscht Inhalt drin. Ist auch verständlich, da die SPI seriell wie ein Schieberegister die Daten von A nach B durchreicht. Was kann ich da tun, damit im ersten empfangen Wert der korrekte Wert drinsteht ? Mit dieser Zeile "SPIx->DR;" funktioniert dies auch nicht.
