Bom dia pessoal, 

Estou tenando comunicar um display TFT serial (Nextion 3,2") com um PIC16F877A.

Não consegui encontrar nenhum exemplo ou biblioteca para essa comunicação na internet com o PIC.

Porem para o arduino encontrei, fiz o teste e funcionou.

---------------------------------------------------------------------------------

//t0 000
//t1 %
//j Progerss Bar
//http://www.instructables.com/id/PROGRESS-BAR-EN-PANTALLA-NEXTION-CO...
// A0 entrada analigoca del potenciometro

int pot = 0; // entrada analigoca del potenciometro
int Valor = 0; // variable para almacenar los datos de la entrada
int val =0; //variable para mandar por el puerto serial
void setup() {
Serial.begin(9600); //inicia el puerto serial a 9600
}
void loop() {
Valor = analogRead(pot); //lee el valor del potenciometro
val= (Valor/4)/2.55;// se divide entre 4 porque los valores analogicos se leen de 0 a 1023 y los valores analogicos se escriben de 0 a255
//y se divide entre 2.55 para que de el porcentaje
delay(150);
Serial.print("j0.val="); //variable de la pantalla que se va a modificar
Serial.print(val); //manda el valor optenido del potenciometro
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t0.txt="); //variable de la pantalla que se va a modificar
Serial.write(0x22);
Serial.print(val); //manda el porcentaje de la entrada
Serial.write(0x22);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t1.txt="); // variable de la pantalla nextion
Serial.write(0x22);
Serial.print("%"); //solo manda el simbolo de porcentaje
Serial.write(0x22);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
}

---------------------------------------------------------------------------------

Fiz o seguinte código

while(1)
{
DELAY_US(10);
ADVALOR = READ_ADC();
VALOR=((ADVALOR*0.0196978)*20);
delay_ms(50);
printf("j0.val=");
printf("%u",valor);
printf("0xff");
printf("0xff");
printf("0xff");
}

Acredito que o problema está na função printf, pois no código do arduino foi utulizado duas funções difrentes, no pic não sei como fazer essa diferença.

Alguém pode me ajudar?

Exibições: 1738

Responder esta

Respostas a este tópico

Pessoal, acabou que eu mesmo achei a solução do problema

Vou compartilhar com vocês

WHILE(1)
{

DELAY_US(10);
ADVALOR = READ_ADC();
VALOR=((ADVALOR*0.0196978)*20);
delay_ms(50);
printf("j0.val=");
printf("%u",valor);
printf("ÿÿÿ");

}

esse caracter ÿ é a forma em ASCII do 0xFF, e na função printf do CCS teve o mesmo resultado que Serial.write do Arduino.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço