wie bekomme ich das hin dass ich über die udr schnittstelle auch gleitkommazahlen senden kann?
2 Möglichkeiten * Einfach die Bytes so wie sie sind verschicken. Dazu ist eine union oft hilfreich union Convert { float Number; unsigned char Bytes[ sizeof float ]; }; void UART_Send_Float( float Number ) { union Convert tmp; unsigned char i; tmp.Number = Number; for( i = 0; i < sizeof( float ); ++i ) UART_Send_Byte( tmp.Bytes[i] ); } Auf der Empfangsseite hast du dann das exakte Gegenstück: Entsprechend viele Bytes empfangen, in ein Array in einer union stecken und die Zahl aus der union abholen * Verschick die Zahl in ihrer Textform. Dafür sind die Funktion sprintf, _ftoa, sscanf, atof hilfreich.
Möglichkeit 2 ist wesentlich sicherer da du dich nicht um LSB/MSB kümmern musst. d.h. es funktioniert immer.
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.