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


von cirquito (Gast)


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

von Baum Fäller (Gast)


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.

von Dr. Sommer (Gast)


Lesenswert?

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

von cirquito (Gast)


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

von Baum Fäller (Gast)


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.

von Dr. Sommer (Gast)


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?
1
#include <inttypes.h>
2
#include <stdio.h>
3
#include <stdint.h>
4
5
int main () {
6
  char message [20];
7
  int count = snprintf (message, sizeof (message), "Adresse: 0x%08" PRIXPTR, (uintptr_t) message);
8
  if (count < sizeof(message)) {
9
    HAL_SPI_Transmit(&spi2, (uint8_t *)message, count, HAL_MAX_DELAY);
10
  } else {
11
    // Error ...
12
    printf ("Error: %d\n", count);
13
  }
14
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.