USART передача данных от устройсва контроллру
|
Ethno |
Дата: Вс, 13.03.2016, 19:14 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
94
Замечания:
±
На сайте с 11.12.2012
Статус:
Offline
|
При передачи в контроллер по USART все вроде работает, но код большой получается, если кто может помочь его причесать.... При нажатии кнопки на устройстве, оно отправляет такой код контроллеру: 0x65 0x00 0x02 0x00 0xff 0xff 0xff Это соответствует таблице ASCII в Dec будет 101 0 2 0 255 255 255
Dim Z As Byte Dim V As Byte Dim T As Byte Dim H As Byte Dim P As Byte Dim S As Byte Dim C As Byte
Z=0 V=0 T=0 H=0 P=0 S=0 C=0
loop: HSerIn 1000, loop, [Z, V, T, H, P, S, C] If Z=101 And V=0 And T=2 And H=0 And P=255 And S=255 And C=255 Then GoTo main DelayMS 200 GoTo loop
|
|
|
|
|
xvovanx |
Дата: Вс, 13.03.2016, 23:54 | Сообщение # 2 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
437
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
А если сравнивать не все переменные Z, V, T, H, P, S, C, а взять и сравнивать их контрольную сумму. Будет одна переменная суммы и одно сравнение...и код лучше будет выглядеть.
Сообщение отредактировал
xvovanx - Вс, 13.03.2016, 23:56
|
|
|
|
|
anatol |
Дата: Пн, 14.03.2016, 09:37 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
624
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
Цитата xvovanx (  ) контрольную сумму Контрольная из другой оперы. Проста сумма отпадает по причине от перемены мест слагаемых...( H=0 And P=255 эквивалентно H=255 And P=0). Может сравнивать переменные в теле программы и выставлять бит в новой переменной условия If Z=101 And V=0 And T=2 And H=0 And P=255 And S=255 And C=255. Т.е. каждой переменной свой бит, и проверять эту переменную? Цитата Ethno (  ) но код большой получается Код большой возможно из-за повторения сравнений. Может оптимальней сравнение выборкой по таблице - переменная, значение, эталон - результат запись бита.
|
|
|
|
|
AndrF |
Дата: Пн, 14.03.2016, 13:22 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
162
Замечания:
±
На сайте с 03.02.2012
Статус:
Offline
|
Там должна быть обработка кода получаемая от дисплея. Что-то вроде:
If P=255 And S=255 And C=255 Then ' Если получены символы завершения посылки Select Z Case 101 ' Touch event return data Select V Case 0 ' Page 0 Select T Case 0 ' ComponentID = 0 ... Ну и так далее Case 1 ... EndSelect Case 1 ... EndSelect Case ... ... EndSelect EndIf
|
|
|
|
|
xvovanx |
Дата: Сб, 18.11.2017, 01:56 | Сообщение # 5 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
437
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
AndrF, разобрались с работой дисплея Nextion? Как передаете данные обратно на дисплей?
|
|
|
|
|
Matrix252005 |
Дата: Сб, 18.11.2017, 08:19 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
713
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Приятного времени суток!!!
xvovanx, я как раз сейчас изучаю такой экран. У меня NX8048T070 7". Пока подключил его к компу через PL-2303 и пробую с него/ В инете много про них написано... Но вот описание команд нет: https://www.itead.cc/wiki....e_event
К МК еще не подключал.
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
|
xvovanx |
Дата: Сб, 18.11.2017, 22:03 | Сообщение # 7 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
437
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Я тоже 7" к умному дому приспособить хочу. В дисплее "красивую" прогу уже сотворил. Описаний команд маловато, но вполне достаточно, разобрался, изучая примеры. На днях получилось подключить к контроллеру и посылать данные, а вот обратно "к дисплею" как - нет информации, вот единственно что нашел- буду пробовать
Сообщение отредактировал
xvovanx - Сб, 18.11.2017, 22:13
|
|
|
|
|
Matrix252005 |
Дата: Сб, 18.11.2017, 22:17 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
713
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Чтобы прочитать с экрана, нужно добавить "Print" в начале. Может это уже видели, а может нет... http://wiki.iarduino.ru/page/Nextion/
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
|
xvovanx |
Дата: Вс, 19.11.2017, 17:17 | Сообщение # 9 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
437
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
С этим то я разобрался еще раньше. С дисплея числа передаются нормально, а вот с текстом заминочка. Если отсылаю, скажем, print "abcdef", то "смотрелкой Сом порта" вижу передачу "abcdef", а вот как заставить ПИК на своем дисплее 1602 это принятое отобразить не знаю, выходит ASCII код от текста в виде числа. Как вывести на экран текст, полученный с КОМ порта, кто подскажет?
Сообщение отредактировал
xvovanx - Вс, 19.11.2017, 18:00
|
|
|
|
|
Matrix252005 |
Дата: Вс, 19.11.2017, 18:27 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
713
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Как я понял про этот экран (HMI Nextion), чтобы отослать экрану нужное, хватает, например: b0.txt="TEXT" чтобы прочесть с экрана, нужно: Print b0.txt. В ответ экран выдает: 0x4f 0x66 0x66 что на норм язык "Off"
Но все это я пока делал в самой IDE экрана... Пока еще изучаю этот экран... пытаюсь понять его команды... До МК пока еще руки не дошли... Просто, я сейчас изучаю СИ и пытаюсь на нем писать проги(напомню, я работаю с СТМами)....
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
|
xvovanx |
Дата: Вс, 19.11.2017, 18:54 | Сообщение # 11 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
437
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Нет, немного не так. Чтобы экран отослал данные, в свойствах его кнопки при нажатии пишем команду print... (у меня при нажатии отсылается величина переменной test и при каждом нажатии увеличивается). Для передачи к экрану данных смотрим картинку 2. Скажем для текста: в ячейку текста экрана t0 впишется слово Привет. Для чисел: величина переменной экрана n0 станет равна значению X.
Сообщение отредактировал
xvovanx - Вс, 19.11.2017, 18:56
|
|
|
|
|
Matrix252005 |
Дата: Вс, 19.11.2017, 20:42 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
713
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Мы друг друга не поняли... Я Вам говорил, про управления с компьютера... Я сейчас провел эксперимент с экраном, если Вы управляете с компьютера (МК), то Вы должны действовать как я писал выше... То есть, если Вы хотите прочесть что то с экрана, Вы должны написать в начале "Print...", если записать, то просто "...". Сейчас я смог прочесть "надпись" кнопки (Button), значение текстового поля (Text), перейти с одной страницы на другую.
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
|
xvovanx |
Дата: Вс, 19.11.2017, 20:52 | Сообщение # 13 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
437
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
А понятно, можно прочесть не нажимая кнопки на самом экране (без передачи от экрана). У меня тоже получилось с Пика, как и писал. Пока не получилось с Пика отослать русский текст, экран принимает кракозябы (на экране выбранна рус.кодировка-5).
Сообщение отредактировал
xvovanx - Вс, 19.11.2017, 21:05
|
|
|
|
|
Matrix252005 |
Дата: Вс, 19.11.2017, 23:13 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
713
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
У меня так же... Но вот что я обнаружил, когда посылаешь "Привет" с IDE Nextion, то она посылает: "74 30 2E 74 78 74 3D 22 BF E0 D8 D2 D5 E2 22 ff ff ff" - значение в НЕХ. А вот что посылает обычная терминилка:: "0x74 0x30 0x2E 0x74 0x78 0x74 0x3D 0x22 0xCF 0xF0 0xE8 0xE2 0xE5 0xF2 0x22 0xFF 0xFF 0xFF " Смещение на 10... Пока еще не понял как это исправить, но... :))
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
|
DAlexV |
Дата: Пн, 20.11.2017, 10:09 | Сообщение # 15 |
Группа:
Пользователи
Ранг:
Разобрался
Сообщений:
710
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Всем привет !!!! Давно не заглядывал, были причины. Что касаемо описания на русском языке, то они есть. Вот пожалуйста !!! От себя добавлю, экран действительно отличный !!! Пробовал и 7' и 2.4'. С процом состыковался на ура, причем в обе стороны. Самая вкусность этого дисплея в том что некоторые операции (математика, прорисовка элементов, подготовка данных к выводу на проц и прорисовка целых экранов можно делать с помощью скриптов которые очень похожи на Барсик). Из косяков(не знаю исправили или нет на данный момент) это только очень требовательный к синтаксису(пробелы). Если кому потребуется, дайте знать, скину пример HMI c проекта.(несколько экранов, ввод информации, и вывод состояния). Успехов
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|