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
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.
Was meinst du mit "die Location"? Warum heißt deine Variable "msg" aber du versuchst "message" zu senden? Was willst du genau machen?
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.