Vermutlich eine ziemliche Anfängerfrage. Habe mittels der LUFA CDC Demo
ein kleines Programm zusammengecoded, das mir die Eingaben die ich übers
Terminal eingebe zurückschickt. Wenn ich das jetzt SendByte mache
funktioniert das auch ganz gut, wandle ich die Eingabe allerdings zuerst
in einen String um und schicke sie dann per SendString zurück zum PC,
erhalte ich immer die Eingabe + "zufällige" (eigentlich immer die
gleichen) Zeichen. Worum könnte das liegen?
Hier ist der Code den ich zum zurücksenden verwenden:
1 | int8_t chars_read,
|
2 | buffer_pos = 0;
|
3 | char buffer[128];
|
4 |
|
5 | int8_t data = 0;
|
6 | while (!(data < 0))
|
7 | {
|
8 | data = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
|
9 | if (!(data < 0)) {
|
10 | buffer[buffer_pos] = (char)data;
|
11 | buffer_pos++;
|
12 | }
|
13 | }
|
14 | char name[buffer_pos + 1];
|
15 | for (chars_read=0; chars_read < buffer_pos; chars_read++) {
|
16 | name[chars_read] = buffer[chars_read];
|
17 | CDC_Device_SendByte(&VirtualSerial_CDC_Interface, name[chars_read]);
|
18 | }
|
19 | CDC_Device_SendString(&VirtualSerial_CDC_Interface, name, strlen(name));
|