Problem mit Serieller (RS232)[gelöst, thx]
Verfasst: 17. Mai 2010 21:37
Hallo
Ich versuche mich nun schon seit ein paar Tagen in QT/c++ einzuarbeiten.
Derzeit sendet mir ein FPGA über die Serielle Daten, das funktioniert auch korrekt.
Nun würde ich gerne diese Daten am PC verarbeiten.
Habe im wesentlichen diese beiden fertigen Programme gefunden:
QextSerialPort und QSerialDevice
Nun habe ich aber mit beiden leider ein Problem:
QSerialDevice: Fehler beim Erstellen:
cannot find -lqserialdevice -> was kann ich dagegen tun?
QextSerialPort:
"Funktioniert" soweit ganz gut, dachte ich jedenfalls.
Habe bereits verschiedenes dazu geschrieben um meine Daten-Pakete zu erkennen und zu überprüfen.
Dann ist mir aufgefallen dass nur das erste Byte jedes Paketes erkannt wird. Habe dann nochmals den original Code genommen ohne Änderungen meinerseits, und siehe da gleiches Problem.
Ein Daten Paket besteht aus 5x8Bit die in kurzem Abstand hintereinander gesendet werden.
Dann ist eine längere Pause, und ein neues Paket wird gesendet.
QextSerialPort erkennt aber nur das erste Byte. ???
Zwischendurch kommen aber noch vereinzelt andere Zeichen an.
Ein Serielles Tool "Terminal.exe" und ein Visual Basic Programm erkennen die Daten korrekt.
Bin leider ziemlich ratlos an was das liegen kann.
Achja, arbeite unter Win Xp mit QT Creator
128000Baud, keine Parity, 1 Stopbit, Flowcontrol=none, Serieller Adapter ist ein USB to Serial
Habe auch schon mit 128000 und 57600 Baud versucht, selbes Problem.
Ich hoffe ihr könnt mir weiterhelfen, ich quäle mich jetzt schon seit Tagen damit herum ;((
Großes Dankeschön für Eure Hilfe.
schönen Abend
lg Lukas
Ich versuche mich nun schon seit ein paar Tagen in QT/c++ einzuarbeiten.
Derzeit sendet mir ein FPGA über die Serielle Daten, das funktioniert auch korrekt.
Nun würde ich gerne diese Daten am PC verarbeiten.
Habe im wesentlichen diese beiden fertigen Programme gefunden:
QextSerialPort und QSerialDevice
Nun habe ich aber mit beiden leider ein Problem:
QSerialDevice: Fehler beim Erstellen:
Code: Alles auswählen
..........g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'g:/Qt/2010.02.1/qt/include/QtCore' -I'g:/Qt/2010.02.1/qt/include' -I'../../qserialdevice' -I'g:/Qt/2010.02.1/qt/include/ActiveQt' -I'../../build/bin/reader/moc' -I'g:/Qt/2010.02.1/qt/mkspecs/win32-g++' -o ../../build/bin/reader/obj/main.o main.cpp
windres -i version.rc -o ../../build/bin/reader/obj/version_res.o --include-dir=.
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-subsystem,console -mthreads -Wl -o ../../build/bin/reader/release/reader.exe ../../build/bin/reader/obj/main.o -L'../../build/lib/qintegratedserialdevice/release' -L'g:/Qt/2010.02.1/qt/lib' ../../build/bin/reader/obj/version_res.o -lqserialdevice -lQtCore4
mingw32-make[1]: Leaving directory `h:/tricopter/qt/rs232test2/QSerialDevice_v0.2.0/examples/reader'
mingw32-make: Leaving directory `H:/tricopter/qt/rs232test2/QSerialDevice_v0.2.0'
g:/qt/2010.02.1/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -lqserialdevice
collect2: ld returned 1 exit status
mingw32-make[1]: *** [../../build/bin/reader/release/reader.exe] Error 1
mingw32-make: *** [sub-examples-reader-make_default-ordered] Error 2
Beendet mit Rückgabewert 2.
Fehler beim Erstellen des Projekts BuildExamples
Beim Ausführen des Build-Schritts 'Make'QextSerialPort:
"Funktioniert" soweit ganz gut, dachte ich jedenfalls.
Habe bereits verschiedenes dazu geschrieben um meine Daten-Pakete zu erkennen und zu überprüfen.
Dann ist mir aufgefallen dass nur das erste Byte jedes Paketes erkannt wird. Habe dann nochmals den original Code genommen ohne Änderungen meinerseits, und siehe da gleiches Problem.
Ein Daten Paket besteht aus 5x8Bit die in kurzem Abstand hintereinander gesendet werden.
Dann ist eine längere Pause, und ein neues Paket wird gesendet.
QextSerialPort erkennt aber nur das erste Byte. ???
Zwischendurch kommen aber noch vereinzelt andere Zeichen an.
Ein Serielles Tool "Terminal.exe" und ein Visual Basic Programm erkennen die Daten korrekt.
Bin leider ziemlich ratlos an was das liegen kann.
Achja, arbeite unter Win Xp mit QT Creator
128000Baud, keine Parity, 1 Stopbit, Flowcontrol=none, Serieller Adapter ist ein USB to Serial
Habe auch schon mit 128000 und 57600 Baud versucht, selbes Problem.
Ich hoffe ihr könnt mir weiterhelfen, ich quäle mich jetzt schon seit Tagen damit herum ;((
Großes Dankeschön für Eure Hilfe.
schönen Abend
lg Lukas