9
votes

Définir Port-Port série High avec Python

est-il possible de définir une goupille du port série continuellement élevé à l'aide de Python (ou C)? Si oui, comment?


1 commentaires

Quelle API utilisez-vous pour accéder au port série?


3 Réponses :


3
votes

Oui, il est possible en utilisant PYSERIAL .


0 commentaires

1
votes

Si vous ouvrez le port, la ligne TX doit aller à l'état haute de la tension et si vous n'envoyez jamais de données, il devrait rester dans cet état (voir ici ). Je n'ai jamais vraiment essayé cela. Vous trouverez peut-être que vous devez activer l'une des lignes de contrôle, comme CTR.

comme pour le logiciel, Themachinecharmer 's La suggestion de pysérien est la manière la plus indépendante de la plate-forme de le faire. Si vous êtes sous Windows, les appels d'API Win32 sont résumés ici . Recherchez Createfile et (si vous devez définir des lignes de contrôle) getcommstate et SetCommstate . Notez que le nom de fichier que vous passez à créeefile devrait ressembler à "\\\\. \\ com1" . La façon de faire de .NET est résumée ici . Vous devrez construire un objet Serialport , puis accédez à ses propriétés pour définir des lignes de contrôle.


0 commentaires

15
votes

Utilisation des méthodes pysériques SETRTS (niveau = true) code> et SETDTR (niveau = true) code> Vous pouvez contrôler les lignes RTS et DTR à volonté. Par exemple, le code suivant bascule la goupille RTS du premier port série. (Voir la documentation pysérienne pour les détails).

import time
import serial

ser = serial.Serial(0)
ser.setRTS(False)
time.sleep(0.5)
ser.setRTS(True)
time.sleep(0.5)
ser.setRTS(False)


1 commentaires

SER = SERIAL.SERIAL ('COM1', 9600)