Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Stm32 ve Nextion

Başlatan neccarzade, 18 Şubat 2019, 15:46:24

neccarzade

Merhabalar,
STM32F407 mikrokontrolör ile nextion2.8" ekran üzerinden haberleşmek istiyorum. İnternet üzerinde kütüphane olarak arduino dışında kaynak bulamadım. Keil için hazır kütüphane yok sanırım. Display sürme konusunda yeni olduğum için kütüphanesini nasıl oluşturacağımı bilemedim. Nasıl bir yol izlemem gerektiğiyle alakalı yardımcı olabilen olursa çok memnun olurum.
sayg.

SB7

Merhabalar.
Öncelikle UART haberleşmesini veri gönderme alma işlemlerini halletmelisiniz.Buları hallettikten sonrası kolay. Göndereceğiniz veri formatını nextionun sitesinden bulabilirsiniz. https://nextion.itead.cc/resources/documents/instruction-set/
Bu sitede yeterli olarak anlatım var. Veri gönderme fonksiyonlarını da anladıktan sonra geriye parça parça fonksiyon oluşturmak kalıyor (Text_gönder(), Grafik_ciz()... gibi ).

Text gönderme için bir örnek:


void Nextion_Send_Text(char *text_id, char *text)
{
  printf("%s",text_id);
 printf(".txt=");
 USART_Putc('"');
 printf("%s",text);
 USART_Putc('"');
 USART_Putc(0xFF);
 USART_Putc(0xFF);
 USART_Putc(0xFF);

veri göndermek için de bu şekilde fonksiyon çağırırsınız.

Nextion_Send_Text("t0",gönderilecektext);

Arduino için hazırlanmış çok güzel kütüphaneler var onlardan da işinize yarayan kısımları kendi kullandığınız ide'ye port edebilirsiniz.C kullanıyorsanız çok zor olmaz. Kolay gelsin.
-SB7

neccarzade

Herkese selamlar,
Daha önce de buradan konuyla alakalı bir sorum olmuştu
stm32f4 işlemcisiyle nextion ekranıma 30 tane farklı veriyi göndermem gerekiyor. Örneğin;
HAL_UART_Transmit(&huart3,(uint8_t*)send,strlen(send),50);
sprintf(send,"A1.txt=\"%.2f%s",A_VAL[0],"\"\xFF\xFF\xFF");
şeklinde bir gönderme yaptığımda dataları ekranda tanımladığım yerlere yazdırabiliyorum. Bunun gibi 30'a yakın veri göndermem gerekiyor. while(1) içinde Tek tek aynı işlemi yaptığımda ekrana yazdırıyorum onda da sorun yok. Lakin başka işlemleri yapmam gerektiğinden böyle bir kod bloğuyla ilerlemek işimi görmüyor. Nasıl bir yol izlemem gerektiğine dair tecrübeli arkadaşlarımızdan yardımcı olabilecek olursa çok memnun olurum.

argelojik

Ekrana gönderirken bu fonksiyonu kullanabilirsin.
void Nextion_Set_Text(char *object_name, char *buffer)
{
	char buf[120] = { 0 };
	char sps = 0xFF;
	sprintf(buf, "%s.txt=\"%s\"%c%c%c", object_name, buffer, sps, sps, sps);
	HAL_UART_Transmit(&huart3, (uint8_t*) &buf, strlen(buf), NextionTimeOutMs);
}
void Nextion_Set_Value(char *object_name, int32_t number)
{
	char buf[30] = { 0 };
	char sps = 0xFF;
	sprintf(buf, "%s.val=%ld%c%c%c", object_name, number, sps, sps, sps);
	HAL_UART_Transmit(&huart3, (uint8_t*) &buf, strlen(buf), NextionTimeOutMs);
}

SelmanFidan

Arkadaşlar Nextion ekran üzerinden STM'e analog veri nasıl gönderebiliriz ?

k0rkunc

peki text boxtaki veriyi nasıl alıcaz

aramgar

Alıntı yapılan: argelojik - 19 Eylül 2019, 08:48:31Ekrana gönderirken bu fonksiyonu kullanabilirsin.
void Nextion_Set_Text(char *object_name, char *buffer)
{
	char buf[120] = { 0 };
	char sps = 0xFF;
	sprintf(buf, "%s.txt=\"%s\"%c%c%c", object_name, buffer, sps, sps, sps);
	HAL_UART_Transmit(&huart3, (uint8_t*) &buf, strlen(buf), NextionTimeOutMs);
}
void Nextion_Set_Value(char *object_name, int32_t number)
{
	char buf[30] = { 0 };
	char sps = 0xFF;
	sprintf(buf, "%s.val=%ld%c%c%c", object_name, number, sps, sps, sps);
	HAL_UART_Transmit(&huart3, (uint8_t*) &buf, strlen(buf), NextionTimeOutMs);
}


Ekrana buton ekleyip, o butonla istediğimiz verileri ekrana yazdırabilir miyiz