2016-08-07 17 views
4

Ich habe eine Raspberry PI B + mit einer C++ - Anwendung, die mit einem Arduino kommunizieren kann. Ich kann lesen, schreiben, serielle Verbindung perfeclty stabil.Raspberry Pi3: C++ serielle Kommunikation funktioniert nicht richtig (Raspberry Pi funktionierte!)

Jetzt kaufte ich einen Raspberry PI3, um mehr Leistungen und wifi integriert zu haben. Nach viel Zeit habe ich die QT-Anwendung wieder funktioniert, aber die serielle Kommunikation würde nicht funktionieren. Ich verband den seriellen Monitor der Arduino IDE und überprüfte, dass es mit RPI 1 funktioniert, und ich sah alle Nachrichten nach meinem Protokoll gesendet, so bin ich sicher, dass ich analysieren kann, was ich aus Raspberry P3 schreibe. Leider bekomme ich nur seltsame Zeichen: enter image description here Ich probierte verschiedene Baudrate, zum Beispiel 115200 und 9600 (erwartete Baudrate!), Aber das Ergebnis ist anders, aber ebenso falsch.

möchte ich berichten, was ich in meinem Raspberry P3 tat: enter image description here ich den seriellen Anschluss für die Konsole deaktiviert Diese Einstellungen (wie ich im Internet verstanden) würde automatisch die Option ändern: enter image description here

enable_uart=0 

ist es seltsam, weil im Web ich gefunden habe, wer vorzuschlagen, zu aktivieren, die klar schreiben, dass es deaktiviert werden sollte, weil bezieht sich auf "Konsole über serielle". Dann habe ich einige Zeilen hinzugefügt (Sie können in rote Form sehen), um die Bluetooth-Handhabung in der Miniuart zu verschieben, die CPU-Frequenz auf 250 zu fixieren und die Standard-Baudrate auf 9600 zu fixieren. Dann deaktiviere ich das Bluetooth mit Dieser Befehl: enter image description here Ich bin mir wirklich nicht sicher, aber .. etwas in einigen Posts vorgeschlagen. Schließlich ist dies das Setup in meiner QT C++ - Anwendung: enter image description here Wo habe ich den Namen des Ports in "ttyS0" geändert, (gleich "serial1").

Also .. was ich erreichen möchte, ist Setup meine pi3 serielle Kommunikation wie mit PiB + arbeitete, auf den gleichen Pins GPIO14 und GPIO15 verbunden. Ist nicht wichtig für Bluetooth, ich werde es nicht verwenden.

Was ich vermisse oder falsch gemacht habe?

Die PINOUT von Himbeere PI3 zu PINOUT von Raspberry PI B + gleich scheint: enter image description here

Und die PINOUT von Himbeere B + ist: enter image description here

Aber ich eine interessante Sache gefunden: enter image description here Es scheint, die Konfiguration ist irgendwie falsch, da GPIO14 und GPIO15 beide EINGÄNGE sind !!

+0

Haben Sie überprüft, dass die Änderung der GPIO-Pinzuordnungen Ihren Code nicht beeinflusst hat? Die Anzahl und Position der Pins hat sich geändert. –

+0

Entschuldigung, ich kann Ihnen nicht vollständig folgen: Was bedeutet eine Änderung in GPIO? Ich erwarte keine Änderung .. die Pinbelegung (ich berichtete oben) ist gleich und auch meine Bewerbung ist gleich. –

+1

Entschuldigung falsch gelesen Ihr Modell Übergang. Überprüfen Sie diese URL: http://www.raspberrypi-spy.co.uk/2012/06/simple-guide-to-the-rpi-gpio-header-and-pins/ Es gibt einen Kommentar dort, der helfen könnte. .. –

Antwort

1

Ich endlich behoben! Wie ich geschrieben habe, habe ich viele Vorschläge im Internet gefunden, aber oft nicht übereinstimmend .. also werde ich hier berichten, wie ich meinen Raspberry p3 eingerichtet habe, um gut zu funktionieren.

1) Verbesserte mein System

sudo apt-get update 
sudo apt-get dist-upgrade 

2) Aktiviert die UART-Konsole

sudo raspi-config 

Erweiterte Optionen -> Serien: enter image description here

Hinweis: wird es automatisch gesetzt 1 die enable_uart in der Dateikonfiguration. txt.

3) bearbeiten config.txt

sudo nano /boot/config.txt 

ich im Grunde eine Zeile, um den Bluetooth-Anschluss (nicht verwendet in meinem Fall) enter image description here

ich auch die Begrenzung der CPU-Frequenz entfernt zu deaktivieren hinzugefügt bis 250, gefunden oft als Hinweis in Foren, wie Sie sehen können, ist es kommentiert (#). Sie können auch die Einrichtung von "enable_uart = 1" mit der Raspi-Config-Schnittstelle sehen.

4) Datei bearbeiten cmdline.txt

sudo /boot/cmdline.txt 

enter image description here

ich das Stück Schnur entfernt, wo es so etwas wie war:

Anwendung
.... console=serial0,115200 .... 

5) zu serial0 verweist

enter image description here

6) FERTIG!

Ich hoffe, diese Schritt-für-Schritt-Anleitung funktioniert für jemand anderen oder im Allgemeinen wird hilfreich sein.