mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Location Adress in STM via SPI


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: cirquito (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

habe einen STM32F4... am laufen und SPI soweit eingerichtet. Darüber 
übertrage ich eine Nachricht an einen Slave, welchen ich per UART am 
Terminal auslese. Aber mittlerweile glaube ich zu spinnen.

Ich schicke ein Char Array z.B. "Adresse: " an meinen SPI und möchte von 
diesem Char Array die Location ebenfalls als String an meinen Slave 
schicken. Egal wie ich den Pointer lenke oder Daten rüberschicke ich 
bekomme es einfach nicht hin.

kleiner Auszug:

char msg[] = "Adresse: ";
HAL_SPI_Transmit(&spi2, (uint8_t *)message, strlen(message), 
HAL_MAX_DELAY);



Ich habe es ebenfalls per void pointer versucht. Aber dann wird wieder 
die Nachricht ausgegeben.

Ich sehe gerade den Baum vor lauter Wald nicht mehr ^^ vielen Dank

Autor: Baum Fäller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cirquito schrieb:
> char msg[] = "Adresse: ";
> HAL_SPI_Transmit(&spi2, (uint8_t *)message, strlen(message),
> HAL_MAX_DELAY);

Vermutlich willst du <msg> senden und nicht <message>.

Denn für <msg> sehe ich eine Zuweisung, für <message> nicht.

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was meinst du mit "die Location"? Warum heißt deine Variable "msg" aber 
du versuchst "message" zu senden? Was willst du genau machen?

Autor: cirquito (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach sorry das war jetzt ein Tippfehler... bei Transmit steht natürlich 
auch msg.

Ich möchte aber nun die Speicheradresse des deklarierten Char-Arrays als 
Text an den Slave schicken.

Z.B. Adresse von msg: 0x20000....



viele Grüße


cir

Autor: Baum Fäller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cirquito schrieb:
> Ich möchte aber nun

Ich möchte nun aber erst mal dein komplettes Programm gelistet
sehen bevor wir hier weiter Rätsel raten.

Beachte bitte die Hinweise zum Posten von Sourcecode.

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cirquito schrieb:
> Ich möchte aber nun die Speicheradresse des deklarierten Char-Arrays als
> Text an den Slave schicken.

Ist möglich, aber wozu? Die Adresse ist jedes Mal anders, da das Array 
auf dem Stack ist. Was soll ein anderer Controller mit einer internen 
Speicher-Adresse anfangen?
#include <inttypes.h>
#include <stdio.h>
#include <stdint.h>

int main () {
  char message [20];
  int count = snprintf (message, sizeof (message), "Adresse: 0x%08" PRIXPTR, (uintptr_t) message);
  if (count < sizeof(message)) {
    HAL_SPI_Transmit(&spi2, (uint8_t *)message, count, HAL_MAX_DELAY);
  } else {
    // Error ...
    printf ("Error: %d\n", count);
  }
}

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.