Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    lettura dati seriale VB6

    Ciao a tutti, ho un problema nella lettura dei dati dalla porta seriale:

    ho un microcontrollore basic atom che invia sulla porta seriale un numero sequenziale da 1 a 9 ogni 2 secondi

    dall'altra parte ho un programma VB6 che legge il dato dalla porta seriale e lo scrive in una textbox, il problema è che quello che leggo non corrisponde ai numeri da 1 a 9 in questo modo:

    scrivo | leggo

    1 | 103
    2 | 51
    3 | 102
    4 | 25
    5 | 101
    6 | 50
    7 | 100
    8 | 12
    9 | 99

    il prog in vb6 è il seguente:

    Form.load
    codice:
    Private Sub Form_Load()
    
    MSComm1.CommPort = 3 ' Selezioniamo la COM1
    MSComm1.Settings = "9600,n,8,1" ' Le impostazioni della seriale
    On Error Resume Next ' Abilito l'intercettazione degli errori
    MSComm1.PortOpen = True ' Apriamo la porta.
    If Err Then ' se è accaduto un errore lo notifico all'utente
        MsgBox "Impossibile aprire la COM" & MSComm1.CommPort & vbCrLf & Error$
    End If
    On Error GoTo 0
    
    End Sub
    mscomm1.oncomm
    codice:
    Private Sub MSComm1_OnComm()
          
    valore = MSComm1.Input
    Text1.Text = Text1.Text & Asc(valore) & vbNewLine
    
    End Sub
    dato che so che 1 = 103 ecc... potrei anche adattarmi e usarlo così ma non capisco cosa sono i valori che leggo...


    aiutooo!!!!
    Il mio portale per le vacanze in Val di Fassa:
    http://www.fassaturismo.com

    Il mio sito personale:
    http://www.mrcdesign.net

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... deve essere un problema di parametri (baud, parità, stop bit) ...

    Sei sicuro del regolare funzionamento del micro?
    Dovresti provarlo con un programma che riceve i dati come Hyperterminal
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Il programma del micro è questo:

    codice:
    dato var byte
    dato = 0
    
    ini:
    dato = dato + 1
    if dato = 10 then
    	dato = 1
    endif
    pause 2000
    SEROUT p22 ,i9600,[dato]
    goto ini
    i9600 è la configurazione della porta (anche se "i" non so cosa significa)...

    come potrei provare a configurarla? e cos'è hyperterminal?
    Il mio portale per le vacanze in Val di Fassa:
    http://www.fassaturismo.com

    Il mio sito personale:
    http://www.mrcdesign.net

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Guarda, del micro non so nulla, dovresti vedere tu dato che hai scritto il codice e lo utilizzi.

    Per il resto, ripeto, controlla con Hyperterminal (che con XP è tra gli accessori) oppure con un qualsiasi programma che apre la porta seriale e riceve i dati.

    Fra l'altro, se ricevi i dati in binario, dovresti ottenere i valori

    01
    02
    03

    e così via, altrimenti, se li ricevi in ASCII dovresti avere

    49
    50
    51

    e via dicendo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.