Envoie en hexadecimal sur le port com [Résolu]

mimi35garry 21 Messages postés mercredi 21 janvier 2009Date d'inscription 8 février 2013 Dernière intervention - 2 janv. 2012 à 20:57 - Dernière réponse : mimi35garry 21 Messages postés mercredi 21 janvier 2009Date d'inscription 8 février 2013 Dernière intervention
- 3 janv. 2012 à 23:22
Bonjour,
pourriez vous m'indiquer comment envoyer un"caractère" ascii en hexadecimal par le port série.
J'explique un peu : sur le port com j'ai un microcontroleur qui reçoit une valeur hexa que je compare pour savoir quelle lettre j'ai reçu et les valeur 0x0D(carriage return) et 0x0A(line feed) pour detecter la fin de l'envoie.
J'ai petit soft eu avec les cours de bigonoff et la pas de problème mais lorsque que j'essaie en vb il ne se passe pas ce qui est attendue. Il y a bien transmission.
Voici ce que j'ai essayé:
serialport1.Write(HEX(12) & vbCrLf)
'ou
SerialPort1.Write(Hex(12))
SerialPort1.Write(Hex(0D))
Serialport1.write(Hex(0A))
et divers methode de conversion decimal hexadecimal.
Je pense bien que je ne suis pas le premier donc si vous pouviez m'indiquer un lien...
Merci d'avance


mimi35garry vous salut bien
Afficher la suite 

3 réponses

Répondre au sujet
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 2 janv. 2012 à 23:12
+3
Utile
Salut

Ce que tu appelles hexadécimal n'est qu'une représentation d'un Byte = octet.
Cet octet peut-être représenté en hexa ou en décimal, peu importe, c'est le chiffre qui compte.
HEX renvoie une chaine ASCII.
Lorsque tu envoie :
SerialPort1.Write(Hex(12))
je pense que tu envoies la chaine ASCII et pas la valeur.
Essaye en n'envoyant que le chiffre 18 (valeur décimal (par défaut) de &12 hexa, sans guillemet) ou Chr(18) (à remettre à la sauve VB.Net)

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Jack
NHenry 14133 Messages postés vendredi 14 mars 2003Date d'inscription 22 avril 2018 Dernière intervention - 2 janv. 2012 à 23:05
0
Utile
Bonjour,

As-tu un exemple plus concret ?
Sinon, en VB, les valeur hexadécomales sont dans le code sous le format &hXX (X caractère hexadécimal)
En .NET, Tu peux faire : MaValeur.ToString("X2")
As-tu regardé les données envoyées ?
Quelles erreurs as-tu rencontrer ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Commenter la réponse de NHenry
mimi35garry 21 Messages postés mercredi 21 janvier 2009Date d'inscription 8 février 2013 Dernière intervention - 3 janv. 2012 à 23:22
0
Utile
Bonjour,
j'ai mis chr(x) --> x charactère à envoyé en décimal et ca marche nikel comme me la indiqué jack
Merci jack et NHenry pour vos réponses, problème résolu.

mimi35garry vous salut bien
Commenter la réponse de mimi35garry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.