begin process at 2010 03 12 19:22:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Récupérer deux mots de 8 bits par le port série


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupérer deux mots de 8 bits par le port série

dimanche 24 avril 2005 à 22:46:34 | Récupérer deux mots de 8 bits par le port série

duquep

Bonjour à tous,

Quelq'un pourrait m'aider!
En deux mots, j'utilise un PIC 16F876 qui envoie deux mots de 8 bits afin de retransmettre une donnée analogique vers le pc par le port série
voilà mon code:
----------------------------------------------------
Dim dat(3)
Private Sub Command1_Click()
   If MSComm1.PortOpen = True Then
      MSComm1.PortOpen = False
   End If
   End

End Sub
Private Sub Form_Load()
Dim TempC
n = 0
    MSComm1.Settings = "9600,N,8,1" 'Set baud rate
    MSComm1.CommPort = 2           'Set comm port
    MSComm1.PortOpen = True         'Open comm port
    Form1.Visible = True            'Show the form
 Do
Start:
    For n = 1 To 2      
Do

       DoEvents
        Loop Until MSComm1.InBufferCount > 0
        dat(n) = Asc(MSComm1.Input) 'Store bytes in Array
        Debug.Print dat(n) ' Debug purposes only
        
         
    Next n
        Label1.Caption = dat(1)
          Label2.Caption = dat(2)
          Label3.Caption = (dat(1)*256)+dat(2)
       
          
       
 Loop
   
         
End Sub

-----------------------------------------------------
Mon problème est que lorsque je lance le programme, il ne synchronise pas toujours sur le premier mot d 8 bits!!!!! Quelqu'un pourrait-il m'aider??????? Pour que le programme s'ynchronise sur le premier mot au lancement de celui-ci!!!!

Merci d'avance


Phil

lundi 25 avril 2005 à 00:02:02 | Re : Récupérer deux mots de 8 bits par le port série

jack

Administrateur CodeS-SourceS
Ouh lala ! Attention
Tu as imbriqué deux boucles l'une dans l'autre : Dans l'ordre, tu as : For - Do - Next - Loop
Ca ne va pas du tout. Il faut impérativement que le Loop soit avant le Next
Mais comme je ne sait pas ce que tu cherches à faire avec ces boucles, difficile de t'aider à restructurer. (et en regardant mieux, il y a plus de Do que de Loop ! je me demande comment VB peut se lancer !)

Si tu veux lire les données numériques issues du port Com, je te conseille de ne pas te compliquer la vie : lis les caractères et traite-les après.
Dans ton cas, tu dimensionnes ton tableau à trois données. Et si le port Com en envoie plus, que se passe t-il ? le programme se plante ou bien ton tableau est écrasé : dans les deux cas, tu perds des données : c'est peut-être ce qui t'arrive.

Ce qu'il faut que tu saches, c'est que quand tu mets 'MSComm1.Input', ça lit toutes les données, mais aussi, ça vide le buffer : Donc si tu n'exploites pas toutes les infos reccueillies, tu en perdras, c'est sûr.
Donc, fait ça en deux temps :
-1- Lit les données et stocke-les
-2- Analyse tes données après

' Variable de réception
Dim Données As String
' Attend les données
Do While MSComm1.InBufferCount = 0
   DoEvents
Loop
' Lecture des données
Données = MSComm1.Input
' Analyse des données
For r = 1 To Len(Données)
   ' 1 est le 1er caractère ..
   Debug.Print "r = "; r; " --> "; Asc(Mid(Données, r, 1))
Next r

Pour le reste, à toi de voir ce que tu vas faire de ces chiffres.

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)
lundi 25 avril 2005 à 18:09:07 | Re : Récupérer deux mots de 8 bits par le port série

duquep

Merci pour ton aide fructueuse!

La seule chose que je puise encore te demander, enfin si tu veux bien....

Comment dois-je faire pour afficher ces deux "mots" dans 2 label.En effet mon composant n'envoie que deux valeurs et j'aimerais qu'il lise ces deux valeurs en boucle.

Un tout tout grand merci.

 

PS voici le ligne du programme de mon composant électronique qui envoie les données :

serout PortC.6,84,[VAR1.HighByte,VAR1.LowByte]



Phil

lundi 25 avril 2005 à 18:09:23 | Re : Récupérer deux mots de 8 bits par le port série

duquep



Phil


Cette discussion est classée dans : port, mots, mscomm1, bits, dat


Répondre à ce message

Sujets en rapport avec ce message

lecture des mots et bits du port parallele au secour !!!!! [ par bruno ] bonjour quelqu'un pourrais t il me donner la marche a suivre pour pouvoir lire des infos envoyer par des contacts sec sur le port *LPT de ma machineje Problème d'emission de données sur un port série [ par Lolo ] Plusieurs collègues et moi même avont constaté un bug du contrôle activeX MSComm32.ocxEn effet lors de l'envoi de données sur le port série en XOn Xof Problème d'emission de données sur un port série [ par Lolo ] Plusieurs collègues et moi même avont constaté un bug du contrôle activeX MSComm32.ocxEn effet lors de l'envoi de données sur le port série en XOn Xof Envoyer/Recevoir sur Port Com [ par FrenchTouch ] Salut !J'essaye de récupérer des données sur un appareil branché sur port com. J'ai mis le téléphone (icône) sur ma form et après je sais plus quoi fa Port com 2,3 et 4 [ par lamarine ] Bonjour à tous,J'ai ouvert un port com1 comme suit :MSComm1.CommPort = 1 ' Utiliser com1 MSComm1.Settings = "115200,N,8,1" ' Port imprimante de 16 à 32 bits [ par bigsquale ] salut,En vb3, mon prog utilise l'api 16 bits Writecomm(port,textimp,Len(textimp)) pour une impression au fil de l'eau sur papier tractable (aiguille)) VB6 et MSCOMM [ par nazzguhl ] Bonjour,j'ai un problème avec MSCOMM en protocole RTS en Qbasic ça marche et en VB6 non!Mon problème envoyer des info sur le port com pour un programm (débutant) Pb avec Numérotateur Tél. sous vb6... [ par nesco25 ] Bonjour à tous(tes),je viens de réaliser un petit numérotateur téléphonique avec vb6 sous xp (modem analogique USRobotics)Le problème est que je peux petit problême avec mscomm! [ par ulmi ] Salut à tous, je viens juste de débuter avec vb et je dois faire une petite appli qui communique avec le port série.j'utilise donc le contrôle MsComm. Lire info du port com [ par vlef0186 ] Bonjour a tousVoila g un petit soucis pour lire les info d'une interface de 4 capteurs de temperatureje me suis renseigne sur le net et g trouver ca:P


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales