Seite 1 von 1

Serielle Schnittstelle RS232 - Anfängerproblem??

Verfasst: Freitag 4. Januar 2008, 15:18
von µC-noob
Hi,
ich weiß, mit sowas sollte man als totaler python neuling nicht gleich anfangen, aber leider bleibt mir nix anderes übrig,.. :( Vorgabe von oben.


Problem:
Ich möchte über die Serielle Schnittstelle RS232 etwas an meinen µC schicken.
Ich soll dazu ein Skript in Python aufstellen.

Hab mich hier im Forum ein wenig hier umgeschaut und die threads angeschaut/überflogen, die über dieses Thema geschrieben wurden.

Habe die Mdule von http://pyserial.sourceforge.net/ installiert

Dananch wollte ich das Beispiel aus dem Thread http://www.python-forum.de/topic-889.html ausprobieren:

Also der Code:

Code: Alles auswählen

#!/usr/bin/python 

import serial, time 

ser = serial.Serial(6, 9600, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=1, xonxoff=0, rtscts=0) 
print ser.portstr 
w = ser.write("PIN1_ON\r") 
#time.sleep(0.2) 
r = ser.read(10) 
print r 
ser.close() 
Also wie im Thread außer dass ich Comport 6 verwende.
Mit dem Hyperterminal habs ich schon ausprobiert, dort ist es auch Port6 (und dort klappts).

Folgende Fehlermeldung:

Traceback (most recent call last):
File "C:/cmd/serial_test.py", line 3, in <module>
import serial, time
File "C:/cmd\serial\__init__.py", line 13, in <module>
from serialwin32 import *
File "C:/cmd\serial\serialwin32.py", line 9, in <module>
import win32file # The base COM port and file IO functions.
ImportError: No module named win32file


Ich weiß aber nicht woher das kommt, die installation habe ich ausgefürt wie auf http://pyserial.sourceforge.net/ beschrieben.

Hat jemand eine Idee??

Danke...

Gruß

Verfasst: Freitag 4. Januar 2008, 15:35
von Leonidas
Du musst pywin32, vormals bekannt als win32all installieren. Steht auch auf der Webseite so.

Achja, das nächste mal bitte in das richtige Forum posten, ok?

Verfasst: Freitag 4. Januar 2008, 15:38
von Andy
Hallo pc-noob!

Nur mal ne leise Vermutung, da noch keiner gepostet hat. :?

Hat Dein Traceback etwas damit zu tun, dass Du Dir, wie auch auf der Homepage von pySerial ersichtlich, die win32all extensions on Windows noch nicht heruntergeladen und installiert hast?. :K

Kann mich irren. Hab davon wirklich keine Ahnung. :roll:

Verfasst: Freitag 4. Januar 2008, 16:09
von µC-noob
Du musst pywin32, vormals bekannt als win32all installieren.
Das habe ich bereits installiert, muss ich da auf den Pfad achten wo ich das hineinkopiere, könnte es daran liegen??
Achja, das nächste mal bitte in das richtige Forum posten, ok?
Sorry, das war mir gar nicht aufgefallen, das ich in allgemeines Drinstecke...
Kann man den Thread noch verschieben??

Danke und Gruß

Verfasst: Freitag 4. Januar 2008, 16:17
von Andy
µC-noob hat geschrieben:Das habe ich bereits installiert, muss ich da auf den Pfad achten wo ich das hineinkopiere, könnte es daran liegen??
Wenn Du die Installationsdatei z. B. pywin32-210.win32-py2.5.exe verwendet hast, wird automatisch in C:\Python25\Lib\site-packages installiert. Das ist das einzig richtige Verzeichnis.

EDIT:Zumindest bei mir in WINDOFF$

Verfasst: Freitag 4. Januar 2008, 16:25
von µC-noob
Die habe ich verwendet.

Woran könnte es sonst liegen???


Gruß

Verfasst: Freitag 4. Januar 2008, 17:09
von Leonidas
Versuch mal in Python-Interpreter win32file zu importieren. Funktioniert das?

Verfasst: Montag 7. Januar 2008, 09:32
von µC-noob
Ich weiß jetzt nicht ob ich das richtig verstanden habe:

So?

Code: Alles auswählen

import win32file
Ist es egal von wo aus ich das File aufrufe??

Auf jeden fall wird es nicht gefunden:

Traceback (most recent call last):
File "C:\Python25\test.py", line 1, in <module>
import win32file
ImportError: No module named win32file

Gruß

Verfasst: Montag 7. Januar 2008, 09:44
von Zap
Dann ist deine pywin32 installation nicht erfolgreich gewesen.
Am besten alle nötigen Schritte nochmal neu durschspielen.

Verfasst: Montag 7. Januar 2008, 09:44
von gerold
µC-noob hat geschrieben:Traceback (most recent call last):
File "C:\Python25\test.py", line 1, in <module>
import win32file
ImportError: No module named win32file
Hallo µC-noob!

1.) Deine Programme haben nichts im Python-Ordner zu suchen. Dort lässt man alles wie es ist.

2.) Installiere dir pywin32:
2.1) Setup herunterladen: http://downloads.sourceforge.net/pywin3 ... g_mirror=0
2.2) Setup mit einem Doppelklick ausführen

3.) Noch einmal ausprobieren, ob du ``import win32file`` im Interpreter ausführen kannst.

Wenn alles nichts hilft, dann hast du dir deine Python-Installation zerschossen. Dann den Fehler zu finden, wird umständlich. Das kann an falschen Pfaden liegen, an falsch installierten Modulen, usw. Aber warten wir mal ab.

mfg
Gerold
:-)

Verfasst: Montag 7. Januar 2008, 10:11
von µC-noob
Super, danke...
Jetzt funktionierts,...

Das ist jetzt ein wenig peinlich :oops:
Aber, ehrlich, ich hatte es installiert :K .

Danke für die Hilfe

Gruß

Verfasst: Donnerstag 3. April 2008, 09:58
von sechsrad
serielle schnittstelle com2 funktioniert nicht.
die untere fehlermeldung kommt mit dem code von noob.
programme wurden installiert.

...import win32file...
dieses ergibt im interpreter keine fehlermeldung.

woran liegt das?
File "D:\Python25\pebi-py\seriell\serial.py", line 5, in <module>
ser = serial.Serial(2,19200, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=1, xonxoff=0, rtscts=0)
AttributeError: 'module' object has no attribute 'Serial'

Verfasst: Donnerstag 3. April 2008, 10:09
von gerold
sechsrad hat geschrieben:
AttributeError: 'module' object has no attribute 'Serial'
nenne deine datei um

Verfasst: Donnerstag 3. April 2008, 10:31
von sechsrad
jup, jetzt geht es.
das habe ich jetzt nicht aus der fehlermeldung gelesen!

noch ein hinweis, die comschnittstelle ist immer um 1 höher als man einstellt im program. im programm ist sie "0" , ist aber dann com1.

dieses war aber nicht der fehler.

danke.

mfg

Verfasst: Donnerstag 3. April 2008, 14:05
von Leonidas
sechsrad hat geschrieben:noch ein hinweis, die comschnittstelle ist immer um 1 höher als man einstellt im program. im programm ist sie "0" , ist aber dann com1.
Das liegt daran, dass in Computern Zahlenfolgen oft mit Null beginnen. Etwa Indexposition Null in Listen oder ``/dev/ttyS0`` auf Unices.