Página 1 de 1
Ajuda [ serial ]

Enviado:
23 Set 2008 10:10
por Diego_Oliveira
http://www.innovatic.dk/knowledg/Serial ... ialCOM.htm
Estou tendo dificuldades para modificar o programa fonecido por este site, ele mostra os caracteres em HEX, mas eu gostaria de velos em ASCII (como se fosse o Hiperterminal).
Alguem poderia me ajudar!!
Aguardo retorno!!!

Enviado:
23 Set 2008 10:38
por joao
Ola Diego,
Olha, abrindo o código fonte, eu sei que vc precisa mudar na função Receiver.
existe este código lá:
- Código: Selecionar todos
RXByte = COMPort.ReadByte
Nibble = (RXByte >> 4) + 48 ' Convert received byte to Hex
If Nibble > 57 Then
Nibble = Nibble + 7
End If
RXArray(I) = Chr(Nibble)
I = I + 1
Nibble = (RXByte And 15) + 48
If Nibble > 57 Then
Nibble = Nibble + 7
End If
RXArray(I) = Chr(Nibble)
I = I + 1
RXArray(I) = " "
I = I + 1
Eu nunca mexi com VB, então não sei como usa-lo.
Tente fazer algo deste tipo(Mude o código acima por este aqui em baixo) e veja se compila/roda:
- Código: Selecionar todos
RXArray(I) = Chr(COMPort.ReadByte)
I = I + 1

Enviado:
23 Set 2008 11:03
por Diego_Oliveira
Você quaseresolveu meu problema....
Olha so estou usando um pic e o compilador CCS, eu mando uma frase qualquer pela serial no caso "DIEGO BITTENCOURT DE OLIVEIRA", no terminal do CCS recebe certo, neste programa agora que fiz a alteração sugerida por você ele recebe isto "W«Å…ý{mWWucyaUW¿wu¿agmSum[}".
Eis a questão.

Enviado:
23 Set 2008 11:10
por joao
Hmmm...
Foi o que eu lhe disse, não mexo com VB.
Mas tenta mais uma coisa:
De:
- Código: Selecionar todos
RXArray(I) = Chr(COMPort.ReadByte)
Para:
- Código: Selecionar todos
RXArray(I) = COMPort.ReadByte
Viu que eu tirei o Chr?
Quem sabe vc já esteja recebendo em Chr...
É um palpite.
[]'s

Enviado:
23 Set 2008 11:24
por joao
Me lembrei de outra coisa que pode ajudar...
Rode o programa em modo debug e veja o valor que você está recebendo no COMPort.ReadByte
Dai podemos verificar o que está faltando para aparecer a letra correta na sua tela.
[]'s

Enviado:
23 Set 2008 11:40
por mamga
Pode ser também alguma incompatibilidade entre o Baud Rate configurado no PIC e o Baud da Porta do PC. Já tive problemas assim em que recebia um "lixo" ao invés do texto esperado, depois de procurar um bom tempo erros no meu codigo fui descobrir que na verdade o erro estava na velocidade.

Enviado:
23 Set 2008 12:43
por otavio luiz
É só um chute mas voce colocou um max232 entre o pic e o pc??? O sinal que sai do pic tem que chegar invertido a entrada do pc por isso usa-se um max232 alem de mudar os niveis de tensão do dado, checa tambem o baud rate e veja se esta tudo certo.

Enviado:
23 Set 2008 14:01
por Diego_Oliveira
Já descobri pessoal.
Fica ruin pedir pro estagiario fazer um cabo, mesmo com o desenho eles conseguem errar.
- Código: Selecionar todos
RXArray(I) = Chr(COMPort.ReadByte)
Com esta rotina funciona tudo OK.
Agora con este programa funcinando da maneira que esta comunicar um microcontrolador com o PC.
Muito obrigado pessoal!