MBP 2013, avec Yosemite 10.10.2 Lors de l'utilisation d'un câble USB -> Série (jeu de puces FTDI), je ne parviens pas à obtenir un débit en bauds défini et à le bloquer tant que le périphérique n'est pas ouvert / écrit / lu. . Par exemple:
Si j'exécute, "stty -f /dev/cu.xxxxxxxx 19200" sans faire quoi que ce soit de logiciel associé, il réinitialisera le baud à 9600 instantanément après.
Cependant, si je lance "cat -u </dev/cu.xxxxxxxx" et que je règle ensuite le bauds à 19200 pendant que le chat est en cours d'exécution, le débit en bauds va rester. C'est également le cas lorsque j'écris du code de test et que j'exécute la commande système C open ("/ dev / cu.xxxxxxxx") et que je bloque le programme.
Sous les anciennes racines BSD, cela semble être un comportement standard. Lorsque j'essaie cela sur une boîte Debian, le taux de bauds reste stable. Cela laisse à penser que cela dépend du système, mais existe-t-il un moyen d’obtenir le débit en bauds comme valeur par défaut / clé permanente?
Réponses:
Pour ceux qui tombent sur ça (oui, un autre ...), voici une solution shell (au moins Bash):
L'astuce consiste à ouvrir un descripteur de fichier pour le port série avant d'utiliser stty. Et le garde ouvert pendant toute la lecture / écriture.
Exemple:
Merci à @crasysim pour son commentaire sur la même question.
la source
Pour tous ceux qui pourraient tomber par la suite sur ce point, je n’étais pas en mesure de trouver une astuce pour garder un «bâton» de débit en bauds
stty -f /dev/cu.xxxxxxxx 19200
. J'ai fini par écrire un petit programme C simple quiopen()
etsleep()
indéfiniment pendant que j'effectué toute autre magie bash, qui a effectivement imité ce que je voulais à l' origine.la source
J'avais un problème similaire et la réponse que vous avez publiée m'a amené à réfléchir à la possibilité d'exécuter stty, puis une autre commande avant que stty ne disparaisse. C’est essentiellement ce que fait la tuyauterie, même si stdin et stdout sont liés, ce qui n’est pas pertinent en l’espèce.
De mon expérience, ce qui suit vous permettra de changer la configuration de cu et d'y accéder ensuite avec ces paramètres.
stty -f /dev/cu.xxxxxxxx 115200|cat /dev/cu.xxxxxxxx
la source