Приветствую всех.
Приобрел дисплейчик тут http://devicter.ru/catalog/elementy-tft , заинтересовали простым управлением по UART, и простым редактором графинтерфейса.
Разбираюсь потихоньку.
Может есть у кого нибудь уже наработки ?
LCD дисплеи Nextion ?
Сообщений 1 страница 30 из 199
Поделиться12015-11-30 05:08:20
Поделиться22015-11-30 10:58:06
Телепатов здесь нет.
Поделиться32015-12-17 17:14:12
Ну раз телепатов здесь нет, то сам поковырялся на досуге.
Вот выкладываю исходник в Bascome, шрифты и проект Nextion , у меня в железе работает.
Может кому нибудь поможет разобраться.
Использовал для работы с датчиками исходники sasha_1973, с этого сайта, за что ему огромное спасибо.
Используемое железо:
Arduino Uno R3, часы DS3231, два датчика температуры DS18b20, датчик давления BMP180, датчик влажности DHT22, ну и LCD дисплей Nextion 320*240.
В планах датчики подключить через nrf24L01+.
Дисплей понравился, работать с ним легко и быстро, графический интерфейс в редакторе можно накрутить очень красивый, я по быстрому накидал простой пока.
Вот ссылки на Wiki
http://wiki.iteadstudio.com/Nextion_Edi … Guide#Text
http://wiki.iteadstudio.com/Nextion_HMI … uction_Set
http://wiki.iteadstudio.com/Nextion_Ins … #print_att
Ну и ссылка на мой проект
https://drive.google.com/open?id=0B7j7d … FhQOWZKaTg
Всем успехов.
Поделиться42015-12-20 09:48:21
А какие фоты нужны?
В ссылке на мой проект есть все исходники.
1. Запускаем Nextion Editor,
2. Подключаем сам LCD через переходник USB-COM к компу,
3. В Nextion Editor открываем файл "LCD-Nextion-Meteo2.HMI", затем кнопка Compile, затем Upload, выбираем COM порт к которому подключился LCD, скорость ставим 115200, затем кнопка GO, должна начаться запись в дисплей, на самом LCD видно бегут проценты и т.д.
4. После прошивки на LCD сразу запускается наш интерфейс. Можно в Nextion Editor запустить Debug в меню "Send command to:" выбираем "Simulator and Nextion device" , жмём "Connect" и тыкая в симуляторе мышкой по нашим кнопкам и тыкая пальцем по нашим кнопкам на LCD, смотрим что в симуляторе и с LCD Nextion передаются команды. Страницы нашего интерфейса переключаем печатая команды "Page 0", "Page 1" и т.д. в симуляторе.
5.Прошиваем Arduino, подключаем LCD к интерфейсу USART Ардуины и всё. Выводим данные на LCD командой Print.
Поделиться52015-12-21 11:09:31
Он даже видео крутить не умеет, какая там 3Д анимация. 
Кстати, а никто не встречал дисплеи подобного плана, но с аналоговым входом, чтобы можно было в свою GUI вставлять видео поток? Пытался на эту тему смотреть в инете, можно максимум прикрутить что-то типа OSD, но оно с грубой графикой и B/W. 
Поделиться62018-04-16 20:53:12
Всем привет! А примерчика случаем нет ни у кого? как температуру перегнать на Nextion, что то неполучается у меня принять на экран.
Поделиться72018-04-16 22:27:28
Всем привет! А примерчика случаем нет ни у кого? как температуру перегнать на Nextion, что то неполучается у меня принять на экран.
Для начала в нужном месте требуется сформировать "приемник" для данных...
Выполняется посылка по UART:
Print "page2.j2.val=";temp11;fin
Где:
- page2 - нужная страница в наборе
- j2.val - числовое значение объекта (графическое отображение термометра)
- temp11 - передаваемое значение из программы МК
- fin - строковая константа, содержащая 3 символа Chr(255)
Nextion прост, как кипяченая вода... 
Поделиться92018-04-16 23:11:43
Да вот для тестов все есть и графический интерфейс и температура и часы а вот с UARTом не когда дело неимел
Так у Nextion это единственный путь для работы с внешним миром... 
Не думаю, что открою вам глаза: https://www.itead.cc/wiki/Nextion_Instruction_Set
Поделиться112018-04-17 10:20:03
Вот так будет не правильно Print "page0.tem.txt=";23;Chr(255);Chr(255);Chr(255) ?
tem - это пока типа текстовая на температуру, ставлю число, но, всеровно на экране нигугу.
Для начала сверить скорость UART.
Nextion по умолчанию работает на 9600.
tem.txt и tem - это свойство объекта и переменная, указывающая его значение соответственно.
Могут иметь одинаковые написания.
tem (переменная) для отправки в данном случае должна быть строковой, т.е. "23".
Числовые значения надо отправлять в HEX виде.
Соответственно и готовить ее нужно соответственно, преобразовывать в текст (или в HEX) перед отправкой.
Строку для отправки тоже лучше сформировать заранее.
Отправлять уже готовое, а не гирлянду, как выше...
stroka = "page0.tem.txt=" & tem & Chr(255) & Chr(255) & Chr(255)
Print stroka
Объяснения не искал, но глюков меньше.
Отредактировано Nord (2018-04-17 10:21:03)
Поделиться122018-04-17 18:14:16
Nord спасибо что откликнулся. Я восновном живу примерами, пример изучил - еду дальше а пока не пойму в терминал все уходит как просит Nextion а результата нет. Ладно спасибо еще раз , буду искать!
Поделиться132018-04-17 18:49:20
а пока не пойму в терминал все уходит как просит Nextion а результата нет.
А терминал отправки из дисплея видит, обратная связь есть ?
Можно к какому-нибудь объекту в событии Touch Press Event вписать строчку
printh 41 42 43 44
В терминал должны прилететь ABCD
Отредактировано Nord (2018-04-17 18:49:21)
Поделиться142018-04-17 18:58:02
Теперь я спокоен что есть свять, так вот работает printbin &H74;&H65;&H6D;&H2E;&H74;&H78;&H74;&H3D;&H22;&H33;&H31;&H22;&Hff;&Hff;&Hff ( через заднее место но сработало) ! Теперь Nord буду складывать прогу по короче 
Отредактировано qewin (2018-04-17 19:08:24)
Поделиться152018-04-17 19:11:40
Что-то сайт сегодня лежит пол дня, с Телеграм не связано?
Нашел в сети единственный пример где немного расписывается . Будем изучать.
We use macro, because we find a lot of common small parts as the 0xFF, oxFF, oxFF in Bascom &HFF, &HFF, &HFF because the instruction is end with three bytes "0xff 0xff 0xff"
Nextion dialogue uses a mix of number sent with printbin and string sent with print
all of following are in sub_macro_nextion.inc
Macro
'---------------macro---------------------------------------------------
Macro Nexend 'to end a tx sequence--------------------------
Printbin &HFF ; &HFF ; &HFF
End Macro
‘-------------------------------------------------------------------------
Macro Nexq ' to send quote before or after a string sentence---------
Printbin &H22
End Macro
we add also a macro “Ret_init “ which reset the serial buffer and the array of byte received from the Nextion display.
where Printbin is use to send data in binary format, here we use hexadecimal value
to send more than one value we use “;” between each.
Вот из этого нужно взять что надо.
' inc file for nextion*******************************************************
'JP Duval 19-05-2017
' usable with Basic Bascom without any warranty
'****************************************************************************
$nocompile
'---------------macro--------------------------------------------------------
Macro Nexend 'to end a tx sequence--------------------------
Printbin &HFF ; &HFF ; &HFF
End Macro
Macro Nexq ' to send quote before or after a sentence---------
Printbin &H22
End Macro
Macro Comma 'to send a , after a numeric value----- '
Printbin &H2C
End Macro
Macro Nex_init 'to init the nextion display
Print "rest";
Nexend
End Macro
Macro Ret_init 'to init the return from nextion
For Jbyte = 1 To 12
Tabreturn(jbyte) = 0
Next
Clear Serialin 'clear the buffer
Cls
End Macro
'*******************************************************************************
' get a value from a tool sending a simple value in 1 byte
'*******************************************************************************
Function Nex_onevalue(byval Text_id As String) As Byte
Local Area As String * 10
Area = "get " + Text_id + ".val" 'Request The Actual Value
' Locate 3 , 10 : Lcd Area
Print Area;
Nexend 'macro which send &hFF,&hFF,&hFF
Call Nex_return()
Call Follow()
Nex_onevalue = Tabreturn(2)
End Function
'*******************************************************************************
' use an on/off button : Letter_id, bt_color, font_color, modif
'*******************************************************************************
Sub Nex_onoff(byval Letter_id As String , Byval Bt As Byte ) As Byte
Local Area As String * 10
If Bt = 1 Then
Area = Letter_id + ".txt=" ' send the text
Print Area;
Nexq 'to send quote
Print "OFF";
nexq
Nexend 'to send "end char ff ff ff"
'Locate 2 , 20 : Lcd "bt off:" ; Bt : Wait 2
Elseif Bt = 0 Then
Area = Letter_id + ".txt=" ' send the text
Print Area;
Nexq 'to send quote
Print "ON";
Nexq
Nexend 'to send "end char ff ff ff"
' Locate 2 , 20 : Lcd "bt on: " ; Bt : Wait 2
End If
End Sub
'*******************************************************************************
' config slider Letter_id,Cursor Width, Cursor Height, maxval, minval cursor_color, back_color
'*******************************************************************************
Sub Nex_configslider(byval Letter_id As String , Byval Cursor_wid As Byte , Byval Cursor_hig As Byte , Byval Maxval As Byte , Byval Minval As Byte , Byval Pt_color As Word , Byval Back_color As Word) As Byte
Local Area As String * 10 ' 0 , 2 , 30 , 100 , 0 , Red , Gold
Area = Letter_id + ".bco=" 'change the Back color
Print Area ; ; Back_color;
Nexend
Area = Letter_id + ".pco=" 'change the cursor color
Print Area ; Pt_color;
Nexend
Area = Letter_id + ".wid=" 'change the cursor thicness
Print Area ; Cursor_wid;
Nexend
Area = Letter_id + ".hig=" 'change the cursor size
Print Area ; Cursor_hig;
Nexend
Area = Letter_id + ".maxval=" 'change the maximum value
Print Area ; Maxval;
Nexend
Area = Letter_id + ".minval=" 'change the minnimum value
Print Area ; minval;
Nexend
End Sub
'*******************************************************************************
' use a gauge val_id, number, width of neddle(1-5) ,needle color, back color
' val must be 0 to 360 in degre
' if you use an image you must
'*******************************************************************************
Sub Nex_gauge(byval Text_id As String , Byval Degre As Word , Byval Wid As Byte , Byval Pt_color As Word , Byval Back_color As Word )
Local Area As String * 10
Area = Text_id + ".bco="
Print Area ; ; Back_color; 'change the Back color
Nexend
Area = Text_id + ".pco=" 'change the neddle color
Print Area ; Pt_color;
Nexend
Area = Text_id + ".wid=" 'change the neddle thicness
Print Area ; Wid;
Nexend
Area = Text_id + ".val=" ' send the text
Print Area;
Print Degre;
Nexend 'to send "end char ff ff ff"
End Sub
'*******************************************************************************
' use a progress bar val_id, number, val color, back color
' val must be 0 to 100
'*******************************************************************************
Sub Nex_bar(byval Text_id As String , Byval Bar As Byte , Byval Txt_color As Word , Byval Back_color As Word )
Local Area As String * 10
Area = Text_id + ".bco=" 'change the Back color
Print Area ; ; Back_color;
Nexend
Area = Text_id + ".pco=" 'change the val color
Print Area ; Txt_color;
Nexend
:
Area = Text_id + ".val=" ' send the text
Print Area;
Print Bar;
Nexend 'to send "end char ff ff ff"
End Sub
'*******************************************************************************
' write number in a number area val_id, number, val color, back color, font
' val for nextion can be only whole number, you must use the Basic Bascom format or using instruction
'*******************************************************************************
Sub Nex_val(byval Text_id As String , Byval Number As Long , Byval Txt_color As Word , Byval Back_color As Word , Byval Font As Byte)
Local Area As String * 10
Area = Text_id + ".bco="
Print Area ; ; Back_color; 'change the Back color
Nexend
Area = Text_id + ".pco=" 'change the val color
Print Area ; Txt_color;
Nexend
Area = Text_id + ".font=" 'change the font
Print Area ; Font;
Nexend
Area = Text_id + ".val=" ' send the text
Print Area;
Print Number;
Nexend 'to send "end char ff ff ff"
End Sub
'*******************************************************************************
' change button attributes val_id, text, text color, back color, font
'*******************************************************************************
Sub Nex_button(byval Text_id As String , Byval Sentence As String , Byval Txt_color As Word , Byval Back_color As Word , Byval Font As Byte)
Local Area As String * 10
Area = Text_id + ".bco=" 'change the Back color
Print Area ; ; Back_color;
Nexend
Area = Text_id + ".pco=" 'change the text color
Print Area ; Txt_color;
Nexend
Area = Text_id + ".font=" 'change the font
Print Area ; Font;
Nexend
Area = Text_id + ".txt=" ' send the text
Print Area;
Nexq 'to send quote
Print Sentence;
nexq
Nexend 'to send "end char ff ff ff"
End Sub
'*******************************************************************************
' write text in a text area val_id, text, text color, back color, font
'*******************************************************************************
Sub Nex_text(byval Text_id As String , Byval Sentence As String , Byval Txt_color As Word , Byval Back_color As Word , Byval Font As Byte)
Local Area As String * 10
Area = Text_id + ".bco=" 'change the Back color
Print Area ; Back_color;
Nexend
Area = Text_id + ".pco=" 'change the text color
Print Area ; Txt_color;
Nexend
Area = Text_id + ".font=" 'change the font
Print Area ; Font;
Nexend
Area = Text_id + ".txt=" ' send the text
Print Area;
Nexq 'to send quote
Print Sentence;
Nexq
Nexend 'to send "end char ff ff ff"
End Sub
'*******************************************************************************
' write a scrolling text in a text area text_id, text, text color, back color, font
'*******************************************************************************
Sub Nex_scrollingtext(byval Text_id As String , Byval Sentence As String , Byval Txt_color As Word , Byval Back_color As Word , Byval Font As Byte)
Local Area As String * 10
Area = Text_id + ".bco="
Print Area ; ; Back_color; 'change the Back color
Nexend
Area = Text_id + ".pco=" 'change the text color
Print Area ; Txt_color;
Nexend
Area = Text_id + ".font=" 'change the font
Print Area ; Font;
Nexend
'Area = "ref " + Text_id 'refresh the attribute of the text area not needed with the last version of nextion
'Print Area;
'Nexend
Area = Text_id + ".txt=" ' send the text
Print Area;
Nexq 'to send quote
Print Sentence;
nexq
Nexend 'to send "end char ff ff ff"
End Sub
'*******************************************************************************
' draw Line Xstart - Ystart Xend -Yend - Color
'*******************************************************************************
Sub Nex_line(byval X1 As Word , Byval Y1 As Word , Byval X2 As Word , Byval Y2 As Word , Byval Color As Word)
Print "line ";
Print X1;
Comma
Print Y1;
comma
Print X2;
comma
Print Y2;
Comma
Print Color;
Nexend
End Sub
'*******************************************************************************
' draw a dot, a dot is a line with Xend=xstart, Yend=Ystart +color
'*******************************************************************************
Sub Nex_dot(byval X1 As Word , Byval Y1 As Word , Byval Color As Word)
Print "line ";
Print X1;
comma
Print Y1;
comma
Print X1;
comma
Print Y1;
comma
Print Color;
nexend
End Sub
'*******************************************************************************
' draw Circle X - Y Center - Radius - Color
'*******************************************************************************
Sub Nex_circle(byval X1 As Word , Byval Y1 As Word , Byval Radius As Word , Byval Color As Word)
Print "cir ";
Print X1;
Comma
Print Y1;
Comma
Print Radius;
Comma
Print Color;
nexend
End Sub
'******************************************************************************
' draw a fill circle X - Y Center - Radius - Color
'******************************************************************************
Sub Nex_circlesolid(byval X1 As Word , Byval Y1 As Word , Byval Radius As Word , Byval Color As Word)
Print "cirs ";
Print X1;
Comma
Print Y1;
Comma
Print Radius;
Comma
Print Color;
nexend
End Sub
'******************************************************************************
' draw a box Xstart - Ystart Xend -Yend - Color
'******************************************************************************
Sub Nex_box(byval X1 As Word , Byval Y1 As Word , Byval X2 As Word , Byval Y2 As Word , Byval Color As Word)
Print "draw ";
Print X1;
comma
Print Y1;
comma
Print X2;
comma
Print Y2;
comma
Print Color;
Nexend
End Sub
'******************************************************************************
' draw a fill box Xstart - Ystart- Width- height - Color
'******************************************************************************
Sub Nex_boxsolid(byval X1 As Word , Byval Y1 As Word , Byval X2 As Word , Byval Y2 As Word , Byval Color As Word)
Print "fill ";
Print X1;
comma
Print Y1;
comma
Print X2;
comma
Print Y2;
comma
Print Color;
Nexend
End Sub
'----------------------------------------------------------------------------------------------------------------------
'---------------------------------sub and function to adjust the screen or the components------------------------------
'******************************************************************************
' change the page
'******************************************************************************
Sub Nex_page(byval Xbyte As Byte)
Print "page ";
Print Xbyte;
Nexend
End Sub
'******************************************************************************
' clear a screen with a color
'******************************************************************************
Sub Nex_cls(byval Color As Word)
Print "cls ";
Print Color;
Nexend
End Sub
'******************************************************************************
' change the backlight of the screen 0= none 100= full
'******************************************************************************
Sub Nex_light(byval Xbyte As Byte)
Print "dim=";
Print Xbyte;
Nexend
End Sub
'******************************************************************************----3----
'****************************************************************************** ----1----
' to know the reply from nextion
' this version use a 4 lines lcd display to visualize so you have to remark
'the lcd lines
'******************************************************************************
Sub Nex_return()
Local Dummy As Byte
Nbyte = 0
Do
If Ischarwaiting() = 1 Then 'we fill an array of byte received---
Jbyte = Inkey()
Incr Nbyte
Tabreturn(nbyte) = Jbyte
If Jbyte = 255 Then 'we count the "end char"
Flagcar = Flagcar + 1
End If
If Flagcar > 3 Then Flagcar = 3
Elseif Ischarwaiting() = 0 And Flagcar = 3 Then 'We are waiting for the end of the reception nbyte>0
If Flagcar = 3 Then
Flagcar = 0
End If
' For Dummy = 1 To Nbyte 'remarque these 3 lines if you dont use LCD display
' Lcd Tabreturn(dummy) ;
' Next
Nbyte = 0
Exit Do
End If
Loop
End Sub
'******************************************************************************
'sub to do something following the return
Sub Follow()
Select Case Tabreturn(1)
Case 101
Screen_id = Tabreturn(2)
Device_id = Tabreturn(3)
State_id = Tabreturn(4)
' Locate 4 , 1 : Lcd Spc(20)
' Locate 4 , 1 : Lcd "Scr:" ; Screen_id ; " Dev:" ; Device_id ; " Sta:" ; State_id
Case 113
' Locate 4 , 1 : Lcd Spc(20)
' Locate 4 , 1 : Lcd "S1:" ; Tabreturn(2) ; " S2:" ; Tabreturn(3) ; " S3:" ; Tabreturn(4) ; " S4:" ; Tabreturn(5)
Case 112
Case 103
Case 104
' Case 136
' Cls
' Locate 1 , 1 : Lcd "Init ok"
' Waitms 300
' Cls
' Case 1 To 34
' Cls
' Locate 1 , 1 : Lcd "ERREUR: " ; Tabreturn(1)
' Locate 3 , 1 : Lcd Spc(20)
' Locate 4 , 1 : Lcd Spc(20)
' Locate 3 , 1 : Lcd "Scr:" ; Tabreturn(1) ; " Dev:" ; Tabreturn(2) ; " STa:" ; Tabreturn(3)
' Wait 3
' Cls
' Case Else
' Locate 3 , 1 : Lcd Spc(20)
' Locate 4 , 1 : Lcd Spc(20)
' Locate 3 , 1 : Lcd "T1:" ; Tabreturn(1) ; " T2:" ; Tabreturn(2) ; " T3:" ; Tabreturn(3)
' Locate 4 , 1 : Lcd "T4:" ; Tabreturn(4) ; " T5:" ; Tabreturn(5) ; " T6:" ; Tabreturn(6)
' Locate 1 , 1 : Lcd "info: " ; Tabreturn(1)
' Waitms 300
' Cls
End Select
End Sub
'******************************************************************************-----2----Отредактировано qewin (2018-04-17 20:08:38)
Поделиться162018-04-17 20:21:24
Теперь я спокоен что есть связь, так вот работает printbin
Как связь организована физически ?
Я использую переходник USB-UART, соединение - только RXD, TXD и GND.
Васиковый Print работает нормально.
Редактор Nextion не умеет работать с терминалами !
Ни с какими...
Нашел в сети единственный пример где немного расписывается . Будем изучать.
Это - для любителей библиотек и пр. подключаемого извне кода. 
Удобно с одной стороны, но я привык делать "все в одном флаконе". 
Отредактировано Nord (2018-04-17 20:25:16)
Поделиться172018-04-17 20:30:28
Теперь Nord буду складывать прогу по короче
Что творим, если не секрет ?
У меня Nextion используется в качестве интерфейса для головного Мега32 в т.н. "умном доме".
Пока еще проект, но частично уже оформлен в железе.
Поделиться182018-04-17 20:49:27
Планируется основная морда что выше ( это пока набросок) Температура в доме на улице, давление , влажность, радио фм ,время, календарь. Пока это осилю там видно будет. Обычно "муза" после апреля уходит до глубокой осени , а потом приходиться опять все вспоминать!!! Поэтому и сохраняю примеры и наработки так как в голове не держится. 
Отредактировано qewin (2018-04-17 20:52:28)
Поделиться192018-04-17 21:06:56
Планируется основная морда что выше ( это пока набросок)
А что за четыре сиськи b0...b3 ? 
Температура в доме на улице, давление , влажность, радио фм ,время, календарь.
Короче, цели примерно одинаковые... 
У меня еще будет управление девайсами и контроль их состояния (положения).
Отредактировано Nord (2018-04-17 21:08:40)
Поделиться202018-04-17 21:14:30
Эти "сиськи "
отображают кнопки при нажатии они подсвечиваются, я их еще не доделал ими планируется делать переход к другим страницам и функциям.
Отредактировано qewin (2018-04-17 21:16:37)
Поделиться212018-04-17 21:20:00
Эти "сиськи " отображают кнопки при нажатии они подсвечиваются
Я кнопки по-другому нарисовал.
Завтра скрин скину.
PS. Хотя... Может на такие "кнопки" давить приятнее...
Подумаем... 
Поделиться222018-04-17 21:24:22
Ну надо же как то выпендрица а то все квадратные и прямоугольные. Эт яйца дрозда
Блин Nord ну правда не мучай дай кусочек как ты отправляешь через PRINT.
Поделиться232018-04-17 21:43:43
Nord ну правда не мучай дай кусочек как ты отправляешь через PRINT.
Я сейчас не дома, потому навскидку:
Формируем строку:
stroka = page + "." + dev + "=" + perem + fin
Обязательно выполнить:
stroka = Trim(stroka)
Отправляем:
Print stroka
где:
page - идентификатор страницы: page0, page2...
dev - идентификатор объекта: tem.txt...
perem - значение для свойств объекта
для текстовых значений формируется через Str(...)
для числовых - Chr(...), при величине более 255 использую текстовые значения, но это только в одном случае - передача давления от BME280
делается так потому, что Print при любом раскладе отправляет символ
fin - константа, определяемая в самом начале: &HFF &HFF &HFF ("яяя" в ASCII)
Не забываем про необходимые разделители (".", "=" и пр.)
В результате получаем цепочку байт, содержащую "page0.tem.txt=temяяя", которую и выплевываем в UART.
Фишка еще в том, что Print автоматом завершает строку символом Chr(13), а Printbin оправляет без него.
Производители Nextion не сообщают об обновляшках, не считают нужным, поэтому в дисплеях "до" и "после" может оказаться, что команды обрабатываются по-разному.
Молнии от пользователей уже не раз летали на форумах по этому поводу. 
У меня NX8048K070_011R, понимает Print нормально...
Отредактировано Nord (2018-04-17 22:05:16)
Поделиться242018-04-17 23:14:54
Вообщем заработала !
Пока так
Dim Stroka As String * 20
Stroka = "tem.txt="+chr(34)+text+chr(34) ' Text (STR) переменная приходит с датчика Темп.
Print Stroka;
Printbin &HFF ; &HFF ; &HFF
Не уходила в монитор потому что ставить кавычки ( открывается " переменная " закрывается ну и &HFF ; &HFF ; &HFF )
Nord Спасибо за наводку и помощь и терпение.
Поделиться252018-04-18 00:21:47
Stroka = "tem.txt="+chr(34)+text+chr(34)
Не увидел Trim(Stroka)
Желательно не игнорировать, т.к. под переменную зарезервировано 20 символов, а в собраной строке их может оказаться меньше.
В результате при выполнении Print в UART улетят лишние байты, которые дисплей попытается куда-то приткнуть, ведь "яяя" он же еще не получил...
И еще. А если вместо этого
Print Stroka;
Printbin &HFF ; &HFF ; &HFF
Написать
Print Stroka; "яяя"
Работает ?
Отредактировано Nord (2018-04-18 02:15:04)
Поделиться262018-04-18 13:45:15
дай кусочек как ты отправляешь через PRINT.
Вот физический "кусочек".
Переменные температуры - Single, т.к. при отправке/приеме числовых значений Nextion пуляет по 4 байта.
В блоке объявления переменных
Dim fin As String * 3 ' Конец посылки FF+FF+FF fin = Chr(255) + Chr(255) + Chr(255) ..... Dim temp21 As Single ' Значение температуры для передачи Dim temp31 As Single ' Значение температуры для передачи Dim hund As Integer ' Значение влажности для передачи Dim hunds As String * 3 ' Текстовое значение влажности Dim presst As String * 4 ' Текстовое значение давления .....
В теле программы, где ведется отправка
If флаг_ошибок.10 = 1 Then hund = 0 If флаг_ошибок.10 = 1 Then presst = "0" hunds = Str(hund) hunds = Trim(hunds) Print "page0.hund.txt=";hunds;fin ' Значение влажности для передачи Print "page0.davl.txt=";presst;fin ' Значение давления для передачи If флаг_ошибок.0 = 1 Then temp11 = 99 Print "page2.j2.val=";temp11;fin ' Значение температуры для передачи If флаг_ошибок.1 = 1 Then temp12 = 99 Print "page1.j2.val=";temp12;fin ' Значение температуры для передачи If флаг_ошибок.2 = 1 Then temp13 = 99 Print "page1.j0.val=";temp13;fin ' Значение температуры для передачи If флаг_ошибок.3 = 1 Then temp14 = 99 Print "page7.j2.val=";temp14;fin ' Значение температуры для передачи If флаг_ошибок.4 = 1 Then temp21 = 99 Print "page6.j2.val=";temp21;fin ' Значение температуры для передачи If флаг_ошибок.10 = 1 Then temp31 = 99 Print "page5.j2.val=";temp31;fin ' Значение температуры для передачи If флаг_ошибок.5 = 1 Then temp32 = 99 Print "page3.j2.val=";temp32;fin ' Значение температуры для передачи If флаг_ошибок.6 = 1 Then temp33 = 99 Print "page3.j0.val=";temp33;fin ' Значение температуры для передачи If флаг_ошибок.7 = 1 Then temp41 = 99 Print "page8.j2.val=";temp41;fin ' Значение температуры для передачи If флаг_ошибок.8 = 1 Then temp42 = 99 Print "page9.j2.val=";temp42;fin ' Значение температуры для передачи If флаг_ошибок.9 = 1 Then temp43 = 99 Print "page9.j0.val=";temp43;fin ' Значение температуры для передачи
Поделиться272018-04-18 18:14:21
Всем привет! Nord спасибо за дополнение.
Так по твоим дополнениям и вопросам.
1. Чтобы все дошло в Nextion монитор ( на моем примере и ЛСД) tem.txt="27.1"яяя = 74 65 6D 2E 74 78 74 3D 22 32 37 2E 31 22 FF FF FF
Так не работает Print Area;"яяя" добавляется в конце (видно в терминале) 0D 0A tem.txt="27.3"яяя = 74 65 6D 2E 74 78 74 3D 22 32 37 2E 33 22 FF FF FF 0D 0A
Отредактировано qewin (2018-04-18 18:18:54)
Поделиться282018-04-18 18:24:46
Все что идет одной строкой в PRINT -е что бы я не писал всегда добавляется 0D 0A
и поэтому у меня не работало и еще пока только таким способом у меня получилось поставить кавычки chr(34)+text+chr(34) = "Text" без них тоже неработает.
fin - тоже неработает(в терминале видет (FF FF FF) но к ним сразу прилепляется в конце 0D 0A ставил и твоим примером и своим нефига
У меня пока такой код на Температуру, Влажность и давление , позже отцеплю лсд Nokia еще убавиться код.
Do Gosub Bme280_read Text = Fusing(temperature , "#.#")' + " °C" Lcdat 2 , 1,"T= "; Text Area = "tem.txt="+chr(34)+text+chr(34) Print Area; Printbin &HFF ; &HFF ; &HFF Text =Fusing(pressure , "#.#")' + " mm" Lcdat 4 , 1,"Ä= "; Text Area = "pre.txt="+chr(34)+text+chr(34) Print Area; Printbin &HFF ; &HFF ; &HFF Text = str(humidity)+ "%" 'Fusing(humidity , "#.#") + "%" Lcdat 6 , 1,"B= "; Text Area = "hum.txt="+chr(34)+text+chr(34) Print Area; Printbin &HFF ; &HFF ; &HFF Wait 1 Loop
Отредактировано qewin (2018-04-18 18:38:41)
Поделиться292018-04-18 20:34:45
Так не работает Print Area;"яяя" добавляется в конце (видно в терминале) 0D 0A
Возможно, включены "галочки" +CR и CR=CR+LF ?
Поделиться302018-04-18 20:54:52
Так не работает Print Area;"яяя" добавляется в конце (видно в терминале) 0D 0A
Возможно, включены "галочки" +CR и CR=CR+LF ?
Все пробовал никак не влияет , ну и термина это лишь окно по которому можно посмотреть что прилетело !?
Похожие темы
| Дисплей DWIN | Дисплеи и индикация | 2025-01-13 |



