Da fehlen mir noch ein paar Infos. Worüber wird kommuniziert? USB-Seriell Wandler oder die "integrierte" ttyAMA0? Welche Sprache wird verwendet? C, sh, bash, python? Wie wird die Schnittstelle genau initialisiert?
Da fehlen mir noch ein paar Infos. Worüber wird kommuniziert? USB-Seriell Wandler oder die "integrierte" ttyAMA0? Welche Sprache wird verwendet? C, sh, bash, python? Wie wird die Schnittstelle genau initialisiert?
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Genau.
Poste mal bitte beide Programme/Abläufe zu dem ganzen.
Weil das ist nicht das "normale" Verhalten der UART Schnittstelle vom rPi das es einfach Daten wieder zurück schickt, frei nach dem Motto "Will ich nicht haben"![]()
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hey,
die Geschichte passiert schon bevor ich versuche zu empfangen.
Sobald ttyAMA0 auf die korrekte Baudrate eingestellt ist werden empfangene Zeichen zurückgeschickt.
Hier die Test Datei auf dem Atmega 32, die wenn ich sie starte fröhlich blinkt.
Code:atmega 32 usart initialisierung UCSRC |= (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1); // Asynchron, 8N1 UBRRH=(uint8_t)(UART_BAUD_CALC>>8); // Baudrate wählen UBRRL=(uint8_t)UART_BAUD_CALC; UCSRB |= (1 << TXEN); // UART TX (senden) einschalten UCSRB |= (1 << RXEN); // UART RX (empfangen) einschalten usart funktionen: void usart_putc(unsigned char c) // Ein Zeichen senden { while(!(UCSRA & (1 << UDRE))); // warte, bis UDR bereit UDR = c; // sende Zeichen } int16_t usart_getc_nowait (void) { // Liefert das empfangene Zeichen, falls etwas empfangen wurde; -1 sonst return (UCSRA & (1 << RXC)) ? (int) UDR : -1; } testprogramm: while(1) { empfangen=usart_getc_nowait(); if(empfangen=='B') { if (!z_led_links) { led_links(gelb); z_led_links=1; } else { led_links(aus); z_led_links=0; } } if(kontroll_zaehler>=50) // Sekunde { led_rechts(gruen); usart_putc ('B'); kontroll_zaehler=0; } }
Ich meinte mehr die Raspberry Seite.Da fehlen mir noch ein paar Infos. Worüber wird kommuniziert? USB-Seriell Wandler oder die "integrierte" ttyAMA0? Welche Sprache wird verwendet? C, sh, bash, python? Wie wird die Schnittstelle genau initialisiert?
Wenn das Herz involviert ist, steht die Logik außen vor! \/
auf Raspberry Seite hab ich per shell nur die baud rate konfiguriert also:
stty -F ttyAMA0 ispeed 9600 ospeed 9600
und dann wird schon jedes geschickte zeichen zurückgeschickt.
Kopiere mal die Datei nach dem Entpacken auf den Raspi und führe diese mal aus. (Rechte 755, evtl. mit sudo vorneweg)
Diese stellt den Port auf 9600 BAUD ein und schaltet das Echo ab.
Dann gleich Dein Programm testen.
Ist es danach immer noch so, dann liegt das Problem tiefer.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Hat erstmal nichts geändert. :/
hat die datei einfach alle "echo*" einstellungen deaktiviert?
Damit hatte ich nämlich auch schon rumprobiert.
Hier mal die Ausgabe von stty -F ttyAMA0 -a nach ausführens deines Programms.
Code:speed 9600 baud; rows 24; columns 80; line = 0; intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = <undef>; stop = <undef>; susp = <undef>; rprnt = <undef>; werase = <undef>; lnext = <undef>; flush = <undef>; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread clocal -crtscts -ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8 -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
Lesezeichen