begin process at 2012 02 10 23:06:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Périphériques

 > 

RS232 et USB


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

RS232 et USB

samedi 21 février 2004 à 23:39:00 | RS232 et USB

zinotron

Salut et Bonsoir tous (et ptet meme toutes).
Je cherche de la doc sur la programmation des ports rs232 et USB en C (pas le C++) et n'utilisant pas les MFC, ni les API ni rien ....
Voila
si quelqu'un as ...
bah ca serait gentil de faire circuler ;-)
Merci D'avance
++
dimanche 22 février 2004 à 12:46:48 | Re : RS232 et USB

Arnotic

Administrateur CodeS-SourceS
Bonjour,

Conernant le port USB tu peux utiliser des drivers génériques de type Jungo (http://www.jungo.com).
Il te fournisse des exemples de programmes très bien fait !

Concernant la RS232 sur ce site tu as un très bon exemple.
http://www.cppfrance.com/code.aspx?ID=18704

@+
Arnotic
Admin CS, MVP Visual C++
dimanche 22 février 2004 à 14:52:58 | Re : RS232 et USB

zinotron

c du win32 :-(
je voudrais tester pour Linux (debian pour etre precis)
en fait, j'ai deja fait un truc a l'aide d'un HOWTO

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <stdio.h>

/* les valeurs pour la vitesse, baudrate, sont définies dans <asm/termbits.h>, qui est inclus
dans <termios.h> */
#define BAUDRATE B38400
/* changez cette définition pour utiliser le port correct */
#define MODEMDEVICE "/dev/ttyS1"
#define _POSIX_SOURCE 1 /* code source conforme à POSIX */

#define FALSE 0
#define TRUE 1

volatile int STOP=FALSE;

main()
{
int fd,c, res;
struct termios oldtio,newtio;
char buf[255];
/*
On ouvre le périphérique du modem en lecture/écriture, et pas comme
terminal de contrôle, puisque nous ne voulons pas être terminé si l'on
reçoit un caractère CTRL-C.
*/
fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY );
if (fd <0) {perror(MODEMDEVICE); exit(-1); }

tcgetattr(fd,&oldtio); /* sauvegarde de la configuration courante */
bzero(&newtio, sizeof(newtio)); /* on initialise la structure à zéro */

/*
BAUDRATE: Affecte la vitesse. vous pouvez également utiliser cfsetispeed
et cfsetospeed.
CRTSCTS : contrôle de flux matériel (uniquement utilisé si le câble a
les lignes nécessaires. Voir la section 7 du Serial-HOWTO).
CS8 : 8n1 (8 bits,sans parité, 1 bit d'arrêt)
CLOCAL : connexion locale, pas de contrôle par le modem
CREAD : permet la réception des caractères
*/
newtio.c_cflag = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD;

/*
IGNPAR : ignore les octets ayant une erreur de parité.
ICRNL : transforme CR en NL (sinon un CR de l'autre côté de la ligne
ne terminera pas l'entrée).
sinon, utiliser l'entrée sans traitement (device en mode raw).
*/
newtio.c_iflag = IGNPAR | ICRNL;

/*
Sortie sans traitement (raw).
*/
newtio.c_oflag = 0;

/*
ICANON : active l'entrée en mode canonique
désactive toute fonctionnalité d'echo, et n'envoit pas de signal au
programme appelant.
*/
newtio.c_lflag = ICANON;

/*
initialise les caractères de contrôle.
les valeurs par défaut peuvent être trouvées dans
/usr/include/termios.h, et sont données dans les commentaires.
Elles sont inutiles ici.
*/
newtio.c_cc[VINTR] = 0; /* Ctrl-c */
newtio.c_cc[VQUIT] = 0; /* Ctrl-\ */
newtio.c_cc[VERASE] = 0; /* del */
newtio.c_cc[VKILL] = 0; /* @ */
newtio.c_cc[VEOF] = 4; /* Ctrl-d */
newtio.c_cc[VTIME] = 0; /* compteur inter-caractère non utilisé */
newtio.c_cc[VMIN] = 1; /* read bloquant jusqu'à l'arrivée d'1 caractère */
newtio.c_cc[VSWTC] = 0; /* '\0' */
newtio.c_cc[VSTART] = 0; /* Ctrl-q */
newtio.c_cc[VSTOP] = 0; /* Ctrl-s */
newtio.c_cc[VSUSP] = 0; /* Ctrl-z */
newtio.c_cc[VEOL] = 0; /* '\0' */
newtio.c_cc[VREPRINT] = 0; /* Ctrl-r */
newtio.c_cc[VDISCARD] = 0; /* Ctrl-u */
newtio.c_cc[VWERASE] = 0; /* Ctrl-w */
newtio.c_cc[VLNEXT] = 0; /* Ctrl-v */
newtio.c_cc[VEOL2] = 0; /* '\0' */

/*
à présent, on vide la ligne du modem, et on active la configuration
pour le port
*/
tcflush(fd, TCIFLUSH);
tcsetattr(fd,TCSANOW,&newtio);

/*
la configuration du terminal est faite, à présent on traite
les entrées
Dans cet exemple, la réception d'un 'z' en début de ligne mettra
fin au programme.
*/
while (STOP==FALSE) { /* boucle jusqu'à condition de terminaison */
/* read bloque l'exécution du programme jusqu'à ce qu'un caractère de
fin de ligne soit lu, même si plus de 255 caractères sont saisis.
Si le nombre de caractères lus est inférieur au nombre de caractères
disponibles, des read suivant retourneront les caractères restants.
res sera positionné au nombre de caractères effectivement lus */
res = read(fd,buf,255);
buf[res]=0; /* on termine la ligne, pour pouvoir l'afficher */
printf(":%s:%d\n", buf, res);
if (buf[0]=='z') STOP=TRUE;
}
/* restaure les anciens paramètres du port */
tcsetattr(fd,TCSANOW,&oldtio);
}

et quand je compile cette chose et que je l'execute, je met ma TI89 sur le port serie et je dis a la caltos d'envoyer qqch (au pif) sur le port serie, et ca deconne ...
si ta une idée ;-)
je prend :p
merci
A+


Cette discussion est classée dans : usb, rs232


Répondre à ce message

Sujets en rapport avec ce message

RS232 en USB [ par sirdeneb ] Bonjour à tous, J'ai un programme en cpp qui communique avec une carte d'acquisition sur le port série. Or étant obligé de changer de PC qui lui n'a tiroir rs232 via port usb [ par Mokhnache ] Bonjour à tous,Est ce que il y'a qulqu'un qui sait comment peut on ouvrir un tiroir caisse rs232 connecter à un ordinateur via un adaptateur USBsachan les prise et c++ [ par wordgaim ] bonjour [^^happy17] je veux depuis un mon mon créer un programme qui commende quelle que chose (par exemple allumer une petit lampe ) a partir d'une p Communication RS232/USB sur Ubuntu [ par Stutu ] Bonjour, Je voudrais savoir comment plutot quelles sont les lignes de codes pour pouvoir communiquer et recevoir les données venant d'une laison RS232 drivers usb [ par fattoumtoutou ] Bonjour, Avez vous svp une idée, tutorial ou un petit guide comment développer un driver pour un OS Android; j'ai besoin en fait d'un driver usb pou liaison rs232 avec PIC 16F877A [ par aspire1640r ] Salut tout le monde Dans le cadre de mon projet de fin d'étude une partie du travail consiste à réaliser une liaison série rs232 entre une carte élect [BAR]pilote usb [ par dido1987 ] salut, j'ai ecrit un simple code en C sur le pic 18f4550 pour afficher une information sur lcd,maintenant je veut envoyer cette information à travers interface homme machine sous labwindows via USB [ par Julie84 ] Bonjour, Je me présente je m'appelle Julie, à ce jour j'ai un projet à réaliser afin d'exploiter les data d'une carte élec, et de créer un interface h ouvrir une communication série (usb) [ par lolitatou ] salut :) je ne sais pas si je poste au bon thème mais j'essaye quand même. Comment je peux ouvrir une communication série (usb)en C ? je vais utilise dialogue USB [ par marcus112 ] Bonjour à tous, comment est-ce que je peux à partir d'une commande (un appuie bouton ou une variable qui passe à 1), faire transférer un fichier (don


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales