Hallo,
mir gehen langsam die Ideen aus warum bei meiner seriellen Datenübertragung mit 2 Xbee Modulen, jeweils 1 Byte falsch auf der PC Seite ankommt, wenn ich vom Roboter Daten versende.
Mein Code auf Roboterseite ist:
Auf PC Seite:Code:void SendDataPackage(uint8_t Identifier, uint16_t value) { USART1_Transmit(_StartCond); //Das hier kommt richtig an USART1_Transmit(Identifier); //Das hier kommt richtig an //value zerlegen uint8_t highB = (uint8_t)(value >> 8); uint8_t lowB = (uint8_t)value; USART1_Transmit(lowB); //Das hier kommt FALSCH an USART1_Transmit(highB); //Das hier kommt richtig an USART1_Transmit(_EndCond); //Das hier kommt richtig an }
Wie im oberen Code bereits kommentiert kommt das Identifier - Byte, das _StartCond - Byte, das _EndCond - Byte und das hByte richtig an.Code:void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { Debug.WriteLine("Recieved Event ausgeführt"); foreach (byte item in serialPort.ReadExisting()) { Debug.WriteLine(item); //Hier werden alle empfangenen Bytes ausgegeben } //Mache was mit den Daten }
Beim lByte jedoch wird immer 63 empfangen.
Meine Serialport Einstellungen sind:
8 Datenbits
1 Stopbit
NoParity
Baudrate : 115200
Verwunderlich ist das ganze für mich zudem, da Daten vom PC zum Roboter richtig übertragen werden.







Zitieren

Lesezeichen