Hallo Leute,
das ist mein Beispiel
1 | #include <stdio.h>
|
2 |
|
3 | int main()
|
4 | {
|
5 | char cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
|
6 |
|
7 | char te[9];
|
8 |
|
9 | unsigned int i;
|
10 | for(i = 0; i < 9; i++){
|
11 | te[i] = cmd[i];
|
12 | }
|
13 |
|
14 | printf("%d\n", te);
|
15 |
|
16 | return 0;
|
17 | }
|
Die Ausgabe sieht immer unterschiedlich aus
1 | sh-4.3$ main
|
2 | -880411616
|
3 | sh-4.3$ main
|
4 | 1994154784
|
5 | sh-4.3$ main
|
6 | -1579372928
|
7 | sh-4.3$ main
|
8 | 1091698064
|
9 | sh-4.3$ main
|
10 | 1277292064
|
11 | sh-4.3$ main
|
12 | -1411712752
|
13 | sh-4.3$ main
|
14 | 1314260048
|
Meine Frage ist was ist hier falsch?
Es ist nur ein Beispiel und es ist wichtig, dass die Bytes einzeln
kopiert werden. In meinem Projekt bekomme ich die Bytes über UART
einzeln und muss diese in ein Array speichern (so stelle ich mir das
zumindestens vor).
Das ist die tatsächliche Funktion, wo ich das einbauen will
1 | static void ICACHE_FLASH_ATTR loop(os_event_t *events) {
|
2 | int c = uart0_rx_one_char();
|
3 | if(c != -1) {
|
4 | //uart_tx_one_char(c);
|
5 | os_printf("%02x", c);
|
6 | }
|
7 | }
|