web-dev-qa-db-fra.com

Comment lire et écrire à partir d'un port COM à l'aide de PySerial?

J'ai Python 3.6.1 et PySerial installés. J'essaie le

Je peux 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 à essayer ensuite.

Code:

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

Sortie :

COM7 - Port de communication USB vers série prolifique (COM7)

COM1 - Port de communication (COM1)

Je vois dans la documentation PySerial que la façon d'ouvrir un port COM est la suivante:

importer en 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

J'utilise Windows et j'obtiens une erreur pour la ligne suivante:

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

En effet, "/ dev/ttyUSB0" n'a aucun sens dans Windows. Que puis-je faire sous Windows?

7
Neil Dey

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

import serial

s = serial.Serial('COM7')
res = s.read()
print(res)

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

6
pointerless