Gestion d'une liaison rs 232 [C] - C - Programmation
Marsh Posté le 16-04-2004 à 14:12:03
Houla ! mais ça c'est sous dos, on remplit des registres et on appele l'interruption 0x14 qui doit être celle de la ligne série.
Actuellement sous windows il ne faut pas faire ça, il faut utiliser l'API windows, cherche un peu il y a eu des topics récents sur le sujet.
Marsh Posté le 16-04-2004 à 14:17:22
oui en effet apres des recherches plus approfondies c'est ce que j'ai remarqué, mais je prefererai passer directement par les adresses des differnets registres pour les mettre a jour (comme par exemple les fonction inportb et outportb)
D'ailleurs est ce que ces deux fonctions peuvent etre utilisées pour un envoie par liaison serie (la derniere fois je m'en suis servi pour une liaison // )
Marsh Posté le 16-04-2004 à 15:43:23
oui, mais c'est très fortement déconseillé sous windaube !
Marsh Posté le 16-04-2004 à 20:22:06
C'est pour du pur DOS sur une machine DOS ?
pour dx : 0 : port COM1, 1 : port COM2, etc.
pour al :
Bits 0-1 : largeur de données 10 : 7 bits, 11 : 8 bits
Bit 2 : nombre de bits stop 0 : 1 bit stop, 1 : 2 bits stop
Bits 3-4 : contrôle de parité : 00 : aucun, 01 impaire, 11 paire
Bits 5-7 : vitesse de transmission. 000 : 110 "bauds"; 001 : 150; 010 : 300; 011 : 600; 100 : 1200; 101 : 2400; 110 : 4800; 111 : 9600.
Marsh Posté le 17-04-2004 à 19:29:42
voila ce que j'ai ecris, pensez vous que cela fonctionnera ?
Code :
|
Marsh Posté le 19-04-2004 à 14:58:24
Citation : voila ce que j'ai ecris, pensez vous que cela fonctionnera ? |
As tu au moins compilé ? => ad_THR-DLL
Tu bosses sous quel Windows ?
Essaye un truc à base de fopen( "COM1", "w+" ), + fwrite...
C'est à ma connaissance le code le plus facilement portable.
Mais faut voir, si c'est un TP, je suppose qu'il faut faire comment le prof a dit... katil dit ?
Marsh Posté le 19-04-2004 à 21:19:03
Oui j'ai compilé, mais il me trouve 10 erreurs la dedans a chaque fois il me marque une erreur sur mes commentaires, apres avoir corriger le ad_THR_DLL (j'utilise turbo c)
Chez moi je suis sou xp, mais en tp sur win98
fopen et fwrite quelles sont ses fonctions je ne les ai jamais vues avant ...
Et nos consignes sont, uiliser le langage c pour faire cette transmission.
merci pour ta reponse en tout cas
Marsh Posté le 20-04-2004 à 09:43:23
En C les commentaires c'est /*...*/, pas //...fin de ligne (la dernière norme corrige ça je crois, mais TurboC est un peu vieux).
Marsh Posté le 28-04-2004 à 09:15:23
hello tout le monde
Voila, je suis en stage de fin de DUT genie electrique. Mon truc est la programmation microcontroleur et mon projet est la discution d'un micro avec un agenda electronique. Pour le simuler, j'ai besoin d'utilisé un PC via RS232. mais moi, j'y connais rien... Mes petits betes sont bien diferante. Alors vos explications sont des fois un peu du charabia! Je ne suis meme pas sur d'avoir les bonnes librerie. Si quelqu'un avait la gentillesse de faire une explication du fonctionnement et des manipes et instruction version tres simple voir neuneu, ca serait po mal.
Merci beaucoup, vous m'enlevrez un chere brotelle...
PS: mettre aussi, si possible, les site ou je peux trouver des infos
Marsh Posté le 28-04-2004 à 10:07:31
Commence par créer un topic.
Précises ce que c'est ton agenda électronique.
Tes profs t'ont donné aucune piste ?
Marsh Posté le 28-04-2004 à 16:04:55
l'agenda electronique est un PALM et sinon question aide, j'ai pas grand chose... comme c'est un stage de fin d'etude, je dois un peu me debrouiller par moi meme. En fait, il me faut pouvoir envoyer un octet (un ordre) receptionner bcp (environs 20000*7 en une fois) (la reponse).
je tourne actuellement a 9600bauds, 1bit stop, 1bit start, 8bits de données, pas de pariter. Si je receptionne mes données dans un tableau par exemple, je me demerderais tjrs a les ranger de facon lisible.
Apres, comme c po du tt mon domain... c quoi un topic! Mon truc c'est la programmation super bas niveau... vous me donnez micro tt seul (sans OS ou autre)et je vous en fais ce que vous voulez. Merci bcp
Marsh Posté le 28-04-2004 à 17:31:02
Citation : l'agenda electronique est un PALM |
...tu fais un programme sur Palm et sur PC ou tu dois interroger un programme qui est pas à toi sur Palm ?
Citation : je dois un peu me debrouiller par moi meme |
Ouai, ils doivent qd même s'assurer de la faisabilité.
Citation : Apres, comme c po du tt mon domain... c quoi un topic! |
topic = sujet.
Le topic actuel c'est "Gestion d'une liaison rs 232".
Et là on post...
Créés-en un nouveau.
Citation : Mon truc c'est la programmation super bas niveau... vous me donnez micro tt seul (sans OS ou autre)et je vous en fais ce que vous voulez. |
Je vois ça...
Marsh Posté le 28-04-2004 à 22:32:47
tham a écrit : hello tout le monde |
Une seule solution : le topic GEII
http://forum.hardware.fr/hardwaref [...] 7655-1.htm
EDIT : si tu développe sous Windows avec Visual C++ : http://www.codeguru.com/Cpp/I-N/ne [...] php/c5425/
Si c'est avec VB c'est encore plus simple
Marsh Posté le 29-04-2004 à 09:02:04
je sors de GEII et mon sujet est inclu la communication RS232 entre un palm et un microcontroleur du type µPSD. Comme ca, je suis claire avec tout le monde. Je veux juste pouvoir simuler l'un avec un pc pour mettre au point l'autre sans utiliser l'hyperterminal qui est assez sommaire qu'en même.
merci d'un petit peu d'aide! Si, c trop hard, je me demerderais tt seul sans pc.
Marsh Posté le 16-04-2004 à 13:48:38
Bonjour a tous
Voila j'ai un tp a preparer pour la rentrée, le but de celui ci etant de transmettre dans un premier temps un caractere par la lisaison com2 du pc. Je vais structurer mon programme en 2 parties: une partie initialisation de la liaison et une seconde emission du caractere.
En fait c'est surtout dans la partie init que je bloque, je ne sais pas a quelle adresse les registres DLM ET DLL permettant de diviser la frequence se trouvent (apres avoir mis a 1 le bit b7 de LCR qui nous permet d'avoir acces au diviseur de frequence)
J'ai fait quelques recherches sur different forum, et a chaque fois l'initialisation se presente sous cette forme:
Mais je ne comprends pas du tout ce que cela signifie , si qq un pouvait m'expliquer se serai super.
Mes questions sont surement ridicules, mais je debute tout juste en language C... Merci de votre lecture et merci d'avance pour votre aide.