PORTA SERIAL RS232
                    Tudo bem galera? Estou com uma duvida referente a uma comunicaçao RS232, preciso enviar o comando Pn1 para uma balança este comando me retornará o valor do peso, Porem não esta funcionando muito bem. Já configurei tanto na balança quanto no software e esta tudo correto. 
Estou tentando da seguinte forma:
Private Sub LeBalanca()
Dim A As String
Dim B As String
SerialPort1.Open()
SerialPort1.WriteLine([Ô]Pn1[Ô] & vbCr)
Do
A = SerialPort1.ReadChar
B = B + Chr(A)
If Chr(A) = [Ô]g[Ô] Then
If Len(B) < 7 Then
Exit Do
End If
TextBox1.Text = B
TextBox2.Text = Trim(Mid(B, 1, Len(B) - 1))
TextBox3.Text = Val(TextBox2.Text)
B = [Ô][Ô]
Exit Do
End If
Loop
SerialPort1.Close()
            Estou tentando da seguinte forma:
Private Sub LeBalanca()
Dim A As String
Dim B As String
SerialPort1.Open()
SerialPort1.WriteLine([Ô]Pn1[Ô] & vbCr)
Do
A = SerialPort1.ReadChar
B = B + Chr(A)
If Chr(A) = [Ô]g[Ô] Then
If Len(B) < 7 Then
Exit Do
End If
TextBox1.Text = B
TextBox2.Text = Trim(Mid(B, 1, Len(B) - 1))
TextBox3.Text = Val(TextBox2.Text)
B = [Ô][Ô]
Exit Do
End If
Loop
SerialPort1.Close()
                    Você cita já haver configurado tanto na balança quanto no software, e isso significa, creio, que já verificou as propriedades da porta (BaudRate, Parity etc) no manual da balança e as mapeou na SerialPort1, certo?
E ainda, confirmou que a porta não está aberta, antes de tentar abrir na rotina acima, certo?
E se sim, qual é o retorno que está obtendo, ao ler?
Por outro lado, caso não tenha ainda configurado, tente uma rotina como:
Valew!
            E ainda, confirmou que a porta não está aberta, antes de tentar abrir na rotina acima, certo?
E se sim, qual é o retorno que está obtendo, ao ler?
Por outro lado, caso não tenha ainda configurado, tente uma rotina como:
...
     Try 
         If SerialPort1.IsOpen = True Then SerialPort1.Close()  
         SerialPort1.BaudRate = Integer.Parse( seuValorBaudRate  )  
         SerialPort1.DataBits = Integer.Parse( seuValorDataBits )  
         SerialPort1.StopBits = DirectCast([Enum].Parse(GetType(StopBits), SeuValorStopBits), StopBits)  
         SerialPort1.Parity = DirectCast([Enum].Parse(GetType(Parity), SeuValorParity), Parity)  
         SerialPort1.PortName = NomeDaPorta  
         SerialPort1.Open()  
     Catch ex As Exception  
         MessageBox.Show ex.Message
     End Try 
...Valew!
                    Repare que você está usando o WriteLine, que por padrão envia não só o texto passado mas também um Line Feed e um Carriage Return, se você precisa enviar exatamente [Ô]Pn1[Ô] & vbCr então eu diria para não usar o WriteLine e sim o Write
                
            
                        Tópico encerrado , respostas não são mais permitidas
                    
                

