uint16_t als ASCII mit HAL_UART_Transmit

OP #6390338
Lesenswert?
• ▲
▼
Moin Leute,
ich lese Sensordaten die wie folgt definiert sind werden.
1
typedef struct {
2
    uint8_t  sensor_id;
3
    int16_t x;
4
    int16_t y;
5
    int16_t z;
6
    int16_t w;
7
    int16_t estimated_accuracy;
8
} bhy_data_quaternion_t;

In d er Callback funktion nachdem neue Daten eingelesen wurden, versuche 
ich sie wie folgt per Uart an meine serielle Schnittstelle zu senden.
1
HAL_UART_Transmit(&huart2,(uint8_t*)&sensor_data->data_quaternion.x, 16, HAL_MAX_DELAY);

Ankommen tuen aber nur undefinierbare Zeichen die Putty nicht erkennt. 
Ist der typecast nicht richtig oder stimmt vielleicht was anderes nicht. 
Würde mich über tipps freuen !-
Gast #6390374
Lesenswert?
• ▲
▼
Harry L. schrieb:
> Ganz nebenbei ist deine struct eben NICHT 16 Byte groß
ungepakt dürften es 48 Bytes sein, wenn es sich um einem 32bit-Prozessor 
handelt, und die struct nicht "gepacked" wurde.

Für sowas gibt es dann aber auch "sizeof()"...

Harry L. schrieb:
> Du kennst den Unterschied zwischen Binär-Daten und
> human-readable-Strings?

Dem sollte man kennen.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.