Pessoal, estou enviando um caractere serial para o PIC, mas o mesmo não está conseguindo identifica-lo. Para garantir que o meu transmissor está funcionando, conectei ele a um arduino programado com um código de echo, enviando tudo que ele recebe para o monitor serial, e o caractere desejado apareceu no mesmo.

O código que estou usando no PIC16F877A no CCS é o seguinte:


#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_c7)
#define LED (output(pin_c0))
char test;
MAIN()
{
WHILE(1)
{
test=GETC();
if(test=="L")
{
output_high(led);
}
}
}

Como podem ver, minha intenção é que ao identificar o caractere "L" vindo pela serial,
o PIC acenda um LED, porem ele nunca executa essa instrução IF

Minhas duvidas são:

Se o monitor serial enxerga o caractere corretamente, existe a
possibilidade do problema ser a transmissão?

E o código que fiz para o PIC, está correto?

Exibições: 1477

Responder esta

Respostas a este tópico

Não ficou claro - quem esta transmitindo para a serial do PIC?

Mostre o diagrama da ligação da interface serial com o PIC.

Se tiver foto, envie também. 

Você consegue receber o caracter L no Arduino ?

Então, é um display LCD touch screen com comunicação serial.

A ligação é TX>RX e RX>TX, e acredito que não tenha problema na conexão, pois eu consigo escrever no display. Mas não consigo ler os comandos programados para ele enviar de volta para o PIC quando um botão do touch é acionado. 

No monitor serial do arduino o L sai perfeitamente, sem nenhum espaço, e é impresso um para cada toque na tela, bem como deveria ser.

Mas por algum motivo não consigo receber nada no PIC

Pode ser a programação da função touch do seu display.

Qual modelo e fabricante do seu display ? envie o link. 

Que biblioteca usou no Arduino para acessar o seu display ? Envie o sketch. 

O display é do seguinte fabricante

https://nextion.itead.cc/

O modelo é NX4024T032

A biblioteca do arduino que está conseguindo interpretar o código é a seguinte:

/* Simple Serial ECHO script : Written by ScottC 03/07/2012 */

/* Use a variable called byteRead to temporarily store
the data coming from the computer */
byte byteRead;

void setup() {
// Turn the Serial Protocol ON
Serial.begin(9600);
}

void loop() {
/* check if data has been sent from the computer: */
if (Serial.available()) {
/* read the most recent byte */
byteRead = Serial.read();
/*ECHO the value that was read, back to the serial port. */
Serial.write(byteRead);
}
}

Apenas conectei o RX e TX do arduino ao do display igual ao que fiz no PIC

E o arduino imprime perfeitamente o que eu envio pelo display

Beleza , veja o datasheet :

https://www.itead.cc/wiki/NX4024T032

Existem dois modelos :

NX4024T032_011N (N: No touch)
NX4024T032_011R (R: Resistive touchscreen)

O que enviou não é uma biblioteca e sim um Sketch de teste de eco da interface serial. 

Com esse sketch de Eco, você recebe o caracter L quando pressiona alguma parte do Touch?

Outros caracteres são ecoados quando outras partes da tela são pressionadas ? 

Pelo que eu entendi, terá que usar um programa para editar a programação do display .

Nextion Editor

http://nextion.itead.cc/download.html

Não consigo instalar no meu Windows 10 ....

Acabei conseguindo resolver o problema, e era uma coisa bem boba na verdade.

O PIC é 5V e a tela 3,3V..... ai já viu né

A tela entendia 5V como nivel alto, mas o PIC nao aceita 3,3V como nivel alto.

Agora consigo tanto receber como enviar. Obrigado pela ajuda José.

Saudações, estou com um problema semelhante mais o meu caso é com o esp8266 e Arduíno, quando uso o Arduíno como simples adaptador de USB consigo receber e transmitir informac mais quando ligo o esp8266 para se comunicar com o atmega 328p o esp entra em um lup infinito de transmissão de caracter estranhos.

Podia ajudar com a solução que tiveste.

Veja isso :

ESP8266 - Interface Serial 5V - testado e aprovado OK :
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 12E - Conexão USB Serial
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 - Teste de comunicação serial do Arduino com o ESP8266 :
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 - Usando IDE Arduino (exemplos ADAFRUIT/SPARKFUN )
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266

Olá Vitor, beleza ?

Como vc resolveu o problema com a diferença de voltagem na serial ?

Vc usou algum hardware a parte nos pinos RX TX do PIC ?

Agradeço sua ajuda.

Não conheço C para PIC mas vou dar meu chute !

Vc tem ctz que deve colocar o L como "L" e não como 'L' ?

Uma coisa é a string L e outra o char L.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço