2017-05-18 2 views
0

J'ai installé Python 3.6.1 et PySerial. J'essaie leComment lire et écrire depuis un port COM en utilisant PySerial?

Je suis en mesure d'obtenir la liste des comports connectés. Je veux maintenant pouvoir envoyer des données au port COM et recevoir des réponses. Comment puis je faire ça? Je ne suis pas sûr de la commande pour essayer ensuite.

code:

import serial.tools.list_ports as port_list 
ports = list(port_list.comports()) 
for p in ports: 
    print (p) 

Sortie:

COM7 - Prolifique Comm USB-to-Serial Port (COM7)

COM1 - Port de communication (COM1)

Je vois de la PySerial Documentation que la façon d'ouvrir un port COM est comme ci-dessous:

importation série

>>> ser = serial.Serial('/dev/ttyUSB0') # open serial port 

>>> print(ser.name)   # check which port was really used 

>>> ser.write(b'hello')  # write a string 

>>> ser.close()    # close port 

Je suis en cours d'exécution sur de Windows et j'obtiens une erreur pour la ligne suivante:

ser = serial.Serial ('/ dev/ttyUSB0')

Ceci est parce que '/ dev/ttyUSB0' n'a pas de sens dans Windows. Que puis-je faire dans Windows?

+0

Oui, idiot moi. Aurait dû faire des recherches un peu. Je peux marquer le vôtre comme une réponse si vous répondez. –

+0

Vous pouvez demander de l'aide comme ça quand vous avez au moins essayé comme vous l'avez fait :) – pointerless

+0

Pouvez-vous s'il vous plaît garder ce lien partagé avec ce que vous aviez précédemment? –

Répondre

0

This pourrait être ce que vous voulez. Je vais jeter un oeil à la docs sur l'écriture. Dans Windows, utilisez COM1 et COM2 etc sans/dev/tty/comme c'est pour les systèmes basés sur unix. Pour lire, utilisez simplement s.read() qui attend des données, pour écrire, utilisez s.write().

s = Serial.Serial('COM7') 
in = s.read() 
print(in) 

vous devrez peut-être décoder pour obtenir des valeurs entières si c'est ce qui est envoyé.