Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3023 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Initialisation UART 16550

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Initialisation UART 16550

n°1713205
Swall
Posté le 05-04-2008 à 18:29:15  profilanswer
 

Bonjour,
 
Je suis nouveau sur le forum j'espère que quelqu'un pourra m'aider.
 
Je voudrais faire communiquer 2 PC par une liaison série avec un programme en C.
Un des PC est sous DOS pour programmer et l'autre sur XP pour recevoir avec le programme hyperterminal.
 
J'ai fais un programme en C qui initialise l'UART :
 
- DLAB à 0 pour accéder aux registres DLL et DLM donc j'ai mis le registre LCR = 0x80
- Pour un débit de 300 bauds le diviseur de vitesse est 180h, j'ai donc mis 0x01 dans DLM et 0x80 dans DLL
- Pour finir j'ai mis le registre LCR = 0x0A pour une parité impaire, 1 bit de stop et 7 bits par caractères.
 
Je lance le programme d'initialisation sous DOS et ensuite j'envoie une chaine de caractère "bonjour" avec la commande em_com1 bonjour mais le PC sous XP ne reçois ma chaine.
Donc est ce que mon programme est complet ? Si quelqu'un peut m'aider ce serais génial parce que je ne comprend vraiment pas pourquoi ça na marche pas.
Si besoin vous avez besoin de plus d'information demander moi, merci !

mood
Publicité
Posté le 05-04-2008 à 18:29:15  profilanswer
 

n°1713506
Emmanuel D​elahaye
C is a sharp tool
Posté le 06-04-2008 à 22:41:53  profilanswer
 

Swall a écrit :

Je voudrais faire communiquer 2 PC par une liaison série avec un programme en C.
Un des PC est sous DOS pour programmer et l'autre sur XP pour recevoir avec le programme hyperterminal.


Sous DOS. OK. Quel version du DOS ? Quel est le compilateur ?

Citation :


J'ai fais un programme en C qui initialise l'UART :
 
- DLAB à 0 pour accéder aux registres DLL et DLM donc j'ai mis le registre LCR = 0x80
- Pour un débit de 300 bauds le diviseur de vitesse est 180h, j'ai donc mis 0x01 dans DLM et 0x80 dans DLL
- Pour finir j'ai mis le registre LCR = 0x0A pour une parité impaire, 1 bit de stop et 7 bits par caractères.
 
Je lance le programme d'initialisation sous DOS et ensuite j'envoie une chaine de caractère "bonjour" avec la commande em_com1 bonjour mais le PC sous XP ne reçois ma chaine.
Donc est ce que mon programme est complet ? Si quelqu'un peut m'aider ce serais génial parce que je ne comprend vraiment pas pourquoi ça na marche pas.
Si besoin vous avez besoin de plus d'information demander moi, merci !


Poste ton code.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Initialisation UART 16550

 

Sujets relatifs
initialisation de tableau à type variable[JBoss] Initialisation
Initialisation d'un tableau sans connaitre sa dimention?Initialisation à zéro d'une grosse matrice en C
Constucteur et initialisationConception de composant; initialisation des propriétés
ordre d'initialisation des membres et warnings visual studio[Csharp] - Initialisation d'une combobox (debutant)
[resolu] Initialisation d'un tableaubluetooth aide a initialisation
Plus de sujets relatifs à : Initialisation UART 16550


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)