Différences entre versions de « Pi-WiringPi-Reference-Serial »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 3 : Ligne 3 :
 
== La librairie série ==
 
== La librairie série ==
  
WiringPi includes a simplified serial port handling library. It can use the on-board serial port, or any USB serial device with no special distinctions between them. You just specify the device name in the initial open function.
+
WiringPi inclus une librairie simplifié de manipulation du port série. Elle est capable d'utiliser le port série de la carte ou n'importe quel port série USB sans aucune distinction particulière. Vous avez seulement besoin de spécifier le nom du périphérique lorsque vous ouvrez le port série avec la fonction serialOpen().
  
To use, you need to make sure your program includes the following file:
+
Pour utiliser le port série, vous devez vous assurer que votre programme inclus la ligne suivante:
  
 
  <nowiki>#include <wiringSerial.h></nowiki>
 
  <nowiki>#include <wiringSerial.h></nowiki>
  
 
== fonctions ==
 
== fonctions ==
Then the following functions are available:
+
Le fonctions du port série s'appuie sur un ''file descriptor'' (fd) qui est un "descripteur de fichier" standard en Linux.
 +
 
 +
Vous pouvez utiliser les fonctions d'appels système standards read(), write(), etc. qui utilisent aussi ce ''file descriptor''.
 +
 
 +
Par exemple, si vous désirez envoyer un large bloc de données binaires, vous pourriez utiliser la fonction write() pour les envoyer. En effet, les fonctions serialPutchar() ou serialPuts() ne seraient pas les plus appropriés.
 +
 
 +
 
 +
Une fois wiringSerial inclus, les fonctions suivantes sont disponibles :
  
 
=== serialOpen ===
 
=== serialOpen ===
  int serialOpen (char *device, int baud) ;
+
  int serialOpen(char *device, int baud) ;
 +
 
 +
Ouvre et initialise le port série en spécifiant le débit (baud rate). Elle initialise le port en mode “raw” (un caractère à la fois sans ''translations'').
 +
Le timeout de lecture est fixé à 10 secondes. La valeur retourné est le ''file descriptor'' (référence vers une structure décrivant un fichier) ou -1 en cas d'erreur. En cas d'erreur, la variable ''errno'' est initialisé avec le code d'erreur correspondant.
  
This opens and initialises the serial device and sets the baud rate. It sets the port into “raw” mode (character at a time and no translations), and sets the read timeout to 10 seconds. The return value is the file descriptor or -1 for any error, in which case errno will be set as appropriate.
+
Paramètres:
 +
* '''device''': chaine de caractère identifiant le périphérique à ouvrir
 +
* '''baud''': le débit de la connexion série qui s'exprime en baud (les valeurs les plus communes sont 9600, 19200, 115200 bauds).  
  
 
=== serialClose ===
 
=== serialClose ===
  void serialClose (int fd) ;
+
  void serialClose(int fd);
 +
 
 +
Ferme le périphérique série identifié par son ''file descriptor''.
  
Closes the device identified by the file descriptor given.
+
* '''fd''': la structure ''file descriptor'' retournée lors de l'appel de serialOpen.
  
 
=== serialPutChar ===
 
=== serialPutChar ===
  void  serialPutchar (int fd, unsigned char c) ;
+
  void  serialPutchar(int fd, unsigned char c);
  
Sends the single byte to the serial device identified by the given file descriptor.
+
Envoi un simple octet/byte sur le périphérique série identifié par le ''file descriptor''.
 +
 
 +
Paramètres:
 +
* '''fd''': le ''file descriptor'' obtenu lors de lapper de la fonction sérialOpen. Permet d'identifier le port série.
 +
* '''c''': l'octet/byte à envoyer sur le port série.
  
 
=== serialPuts ===
 
=== serialPuts ===
  void  serialPuts (int fd, char *s) ;
+
  void  serialPuts(int fd, char *s);
  
Sends the nul-terminated string to the serial device identified by the given file descriptor.
+
Envoi une chaine de caractère (de type ''null-terminated'') sur le port série identifié par le ''file descriptor''.
 +
 
 +
Paramètres:
 +
* '''fd''': le ''file descriptor'' obtenu lors de lapper de la fonction serialOpen. Permet d'identifier le port série.
 +
* '''s''': chaîne de caractères à envoyer (chaine de type ''null terminated'', qui se termine donc par le caractère 0x00).
  
 
=== serialPrintf ===
 
=== serialPrintf ===
 
  void  serialPrintf (int fd, char *message, …) ;
 
  void  serialPrintf (int fd, char *message, …) ;
  
Emulates the system printf function to the serial device.
+
Emule le système printf avec le port série identifié par son ''file descriptor''.
  
 
=== serialDataAvail ===
 
=== serialDataAvail ===
  int serialDataAvail (int fd) ;
+
  int serialDataAvail(int fd);
  
Returns the number of characters available for reading, or -1 for any error condition, in which case errno will be set appropriately.
+
Retourne le nombre de caractères disponible sur le port série pour une opération de lecture ou -1 en cas d'erreur quelconque.
 +
 
 +
En cas d'erreur, la variable ''errno'' est initialisée avec le code d'erreur correspondant.
  
 
=== serialGetChar ===
 
=== serialGetChar ===
   int serialGetchar (int fd) ;
+
   int serialGetchar(int fd);
  
Returns the next character available on the serial device. This call will block for up to 10 seconds if no data is available (when it will return -1)
+
Retourne le prochain caractère disponible sur le port série. Cette fonction peut bloquer le processus jusqu'à 10 secondes s'il n'y a pas de donnée disponible (alors il retourne -1)
  
 
=== serialFlush ===
 
=== serialFlush ===
 
   void serialFlush(int fd);
 
   void serialFlush(int fd);
  
This discards all data received, or waiting to be send down the given device.
+
Efface toutes les données reçues ou en attente d'envoi sur le port série spécifié par le ''file descriptor''.
 
 
Note: The file descriptor (fd) returned is a standard Linux file descriptor. You can use the standard read(), write(), etc. system calls on this file descriptor as required. E.g. you may wish to write a larger block of binary data where the serialPutchar() or serialPuts() function may not be the most appropriate function to use, in which case, you can use write() to send the data.
 
  
 
== Contrôle avancé du port série ==
 
== Contrôle avancé du port série ==

Version du 12 octobre 2013 à 20:04


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

La librairie série

WiringPi inclus une librairie simplifié de manipulation du port série. Elle est capable d'utiliser le port série de la carte ou n'importe quel port série USB sans aucune distinction particulière. Vous avez seulement besoin de spécifier le nom du périphérique lorsque vous ouvrez le port série avec la fonction serialOpen().

Pour utiliser le port série, vous devez vous assurer que votre programme inclus la ligne suivante:

#include <wiringSerial.h>

fonctions

Le fonctions du port série s'appuie sur un file descriptor (fd) qui est un "descripteur de fichier" standard en Linux.

Vous pouvez utiliser les fonctions d'appels système standards read(), write(), etc. qui utilisent aussi ce file descriptor.

Par exemple, si vous désirez envoyer un large bloc de données binaires, vous pourriez utiliser la fonction write() pour les envoyer. En effet, les fonctions serialPutchar() ou serialPuts() ne seraient pas les plus appropriés.


Une fois wiringSerial inclus, les fonctions suivantes sont disponibles :

serialOpen

int serialOpen(char *device, int baud) ;

Ouvre et initialise le port série en spécifiant le débit (baud rate). Elle initialise le port en mode “raw” (un caractère à la fois sans translations). Le timeout de lecture est fixé à 10 secondes. La valeur retourné est le file descriptor (référence vers une structure décrivant un fichier) ou -1 en cas d'erreur. En cas d'erreur, la variable errno est initialisé avec le code d'erreur correspondant.

Paramètres:

  • device: chaine de caractère identifiant le périphérique à ouvrir
  • baud: le débit de la connexion série qui s'exprime en baud (les valeurs les plus communes sont 9600, 19200, 115200 bauds).

serialClose

void serialClose(int fd);

Ferme le périphérique série identifié par son file descriptor.

  • fd: la structure file descriptor retournée lors de l'appel de serialOpen.

serialPutChar

void  serialPutchar(int fd, unsigned char c);

Envoi un simple octet/byte sur le périphérique série identifié par le file descriptor.

Paramètres:

  • fd: le file descriptor obtenu lors de lapper de la fonction sérialOpen. Permet d'identifier le port série.
  • c: l'octet/byte à envoyer sur le port série.

serialPuts

void  serialPuts(int fd, char *s);

Envoi une chaine de caractère (de type null-terminated) sur le port série identifié par le file descriptor.

Paramètres:

  • fd: le file descriptor obtenu lors de lapper de la fonction serialOpen. Permet d'identifier le port série.
  • s: chaîne de caractères à envoyer (chaine de type null terminated, qui se termine donc par le caractère 0x00).

serialPrintf

void  serialPrintf (int fd, char *message, …) ;

Emule le système printf avec le port série identifié par son file descriptor.

serialDataAvail

int serialDataAvail(int fd);

Retourne le nombre de caractères disponible sur le port série pour une opération de lecture ou -1 en cas d'erreur quelconque.

En cas d'erreur, la variable errno est initialisée avec le code d'erreur correspondant.

serialGetChar

 int serialGetchar(int fd);

Retourne le prochain caractère disponible sur le port série. Cette fonction peut bloquer le processus jusqu'à 10 secondes s'il n'y a pas de donnée disponible (alors il retourne -1)

serialFlush

 void serialFlush(int fd);

Efface toutes les données reçues ou en attente d'envoi sur le port série spécifié par le file descriptor.

Contrôle avancé du port série

The wiringSerial library is intended to provide simplified control – suitable for most applications, however if you need advanced control – e.g. parity control, modem control lines (via a USB adapter, there are none on the Pi’s on-board UART!) and so on, then you need to do some of this the “old fashioned” way.

For example – To set the serial line into 7 bit mode plus even parity, you need to do this…

In your program:

#include <termios.h>

and in a function:


struct termios options ;
tcgetattr (fd, &options) ;   // Read current options
options.c_cflag &= ~CSIZE ;  // Mask out size
options.c_cflag |= CS7 ;     // Or in 7-bits
options.c_cflag |= PARENB ;  // Enable Parity - even by default
tcsetattr (fd, &options) ;   // Set new options 

The ‘fd’ variable above is the file descriptor that serialOpen() returns.

Please see the man page for tcgetattr for all the options that you can set.

man tcgetattr

Source: WiringPi.com. WiringPi est une libraire sous licence GPL écrite par Gordon Henderson. Crédit: wiringpi.com

Traduit de l'anglais par Meurisse D. pour MCHobby.be

Traduit avec l'accord de Gordon Henderson, créateur de wiringPi - Translated with authorization of Gordon Henderson, creator of wiringPi

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.