Initialisation UART 16550 - C - Programmation
Marsh Posté le 06-04-2008 à 22:41:53
Swall a écrit : Je voudrais faire communiquer 2 PC par une liaison série avec un programme en C. |
Sous DOS. OK. Quel version du DOS ? Quel est le compilateur ?
Citation : |
Poste ton code.
Marsh Posté le 05-04-2008 à 18:29:15
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 !