Controler completement le port série

CPPTSI Messages postés 17 Date d'inscription vendredi 5 décembre 2008 Statut Membre Dernière intervention 30 octobre 2010 - 15 févr. 2009 à 18:21
CPPTSI Messages postés 17 Date d'inscription vendredi 5 décembre 2008 Statut Membre Dernière intervention 30 octobre 2010 - 17 févr. 2009 à 12:33
Bonjour,
J'ai réalisé un montage électronique avec un pic, et j'ai besoin de le piloter par mon pc. J'utilise donc le port série, le problème c'est que je n'arrive pas avec visual basic express 2008 à gérer le port.

Enfaite avec VB il gére toute la communication rs232 mais justement je voudrais pas qu'il le fasse car je dois utiliser mon propre protocole de communication. Pourquoi? car j'utilise un module radio pour transmettre entre mon pc et mon pic et que pour pas capter toute les ondes des alentours je dois coder mon signal. Mon objectif est donc au final de simplement mettre à 1 (niveau logique) la sortie TX durant un certain temps puis à 0 (logique) pendant un certain temps, sans utiliser les broches de réponse et tout (DTR, DSR,.....)

Je sais pas si j'ai étais vraiment clair, au final ma question serait : peut on commander nous même chaque broche du port série de façon indépendante? choisir quelle broche est à 1 ou 0 et pendant combien de temps?

merci

4 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
15 févr. 2009 à 19:52
Salut
En fait, le signal Tx n'est pas un signal tout-ou-rien comme peuvent l'être DTR ou DSR, il transmet les données.
Si tu envoies une donnée sur le port, il enverra une série de bits (état 0 ou 1), mais une fois qu'il a terminé, il n'envoie plus rien.
La durée dépend de la vitesse de comm. Si tu règles en 150 Bds, cela durera beaucoup plus longtemps qu'en 19200 Bds, logique.
Donc, si tu veux mettre à 1 le signal Tx, il envoyer FF (*) en permanence dans le buffer.
(*) FF hexa ou 255 décimal ou Chr$(255) ascii, au choix, selon ton format d'écriture

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
42wawa42 Messages postés 143 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 6 septembre 2011
16 févr. 2009 à 00:09
Hello CPPTSI



La réponse a la question est non.




<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 






Raison exemple pour lettre A = 41hex   ou   01000001b




 il y a une start bit  0 puis  01000001 pour A et une stop bit 0.



Donc voila la réponse. Donc meme avec FFh ou 11111111b li siganal tombe a zero.




 






A plus



42wawa42
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
16 févr. 2009 à 00:36
Oui, il tombe à zéro, mais globalement, il reste plus souvent à 1 qu'à 0.
Comme il semble s'agir de récupérer cette info pour un circuit électronique, un petit condo suffira pour éviter les microcoupures dûes à ces zéros.
0
CPPTSI Messages postés 17 Date d'inscription vendredi 5 décembre 2008 Statut Membre Dernière intervention 30 octobre 2010
17 févr. 2009 à 12:33
Merci pour vos réponses, niveau fonctionnement réel du port série il y a pas de soucis en électronique je m'en sert souvent, mais je savais pas si on pouvait sans servir comme une simple sortie comme sur les microcontroleurs, mais vous m'avez donné la réponse
Par contre vous auriez une autre solution pour faire cela ? par le port USB ou parallèle(en utilisant qu'une seul broche). Car je peux pas utiliser une communication RS232 (explication sur le codage: http://lewebelectronique.free.fr/dossiers/433mhz.htm#coder paragraphe "Encoder les informations à transmettre" vers le milieu de page).
0