Marc Silanus

En Python

Les ports séries asynchrones

Pour mener à bien les tests de lecture et d'écriture sur les ports séries asynchrones de la FOX Board G20, nous allons relier entre eux 2 des ports. Connectez les lignes RX du port COM4 (ttyS5) et TX du port et COM3 (ttyS4) entre elles et inversement.

Test de lecture et écriture sur port série

Connexion de tty4 sur tty5 pour tester la communication série

Sous Linux, chaque port série est représenté par un fichier de périphérique situé dans le dossier /dev.

Pour recevoir des caractères sur le port ttyS5:

#serialPortPrint.py
import serial
ser2 = serial.Serial(port='/dev/ttyS5', baudrate=9600, timeout=1, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
s = ser2.read(1)          # lire un caractere
chaine = ""
while (s != "q"):
         s = ser2.readline()       # lire une ligne (fini par un retour chariot)
         if (s != ""):
                 print s
ser2.close()

Pour transmettre des caractères sur le port ttyS4 :

#serialPortInput.py
import serial
ser1 = serial.Serial(port='/dev/ttyS4', baudrate=9600, timeout=1, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
#x = raw_input("caracteres a transmettre(q pour arreter) : ")
x = "rien"
while (x != "q"):
         #print x
         x = raw_input("caractere a transmettre(q pour arreter) : ")
         ser1.write(x)
ser1.close()

Pour testez l’envoi et la réception de caractères, ouvrez deux terminaux simultanément :

Premier terminal :
debarm:~# python serialPortInput.py
caracteres a transmettre(q pour arreter) : Salut, comment-vas tu ? je fais un test de transmission sur le port série
caracteres a transmettre(q pour arreter) : q
debarm:~#
Deuxième terminal :
debarm:~# python serialPortPrint.py
Salut, comment-vas tu ? je fais un test de transmission sur le port série
debarm:~#