Не понимаю как заслать в дисплей 16-тиричный код...

Unikus
Offline
Зарегистрирован: 19.09.2021

Братья, есть дисплей GHLCD3224c LCD от Comfly. Через Нано с клавиатуры получается выводить символы на экран через Tx... Но вот для смены состояния и параметров дисплея нужно засылать команды в  HEX . Также они разной длины... и я не понимаю , каким образом это сделать... Вернее понимаю, но с кодированием тупик ... То ли одна команда засылается целой строкой , то ли побайтово в цикле... Пробовал и Serial.print и Serial.write . Может как то неправильно их объявляю...

http://[URL=http://vfl.ru/fotos/455e009b35924446.html][IMG]http://images.vfl.ru/ii/1632074518/455e009b/35924446_s.png[/IMG][/URL]

Unikus
Offline
Зарегистрирован: 19.09.2021

Немного неудачно разместил ссылку... По первой лист мануала ... А редактирование шапки здесь запрещено ? 

sadman41
Offline
Зарегистрирован: 19.10.2016
uint8_t cmd[] = {0x01, 0x0x2, 0x03};
...
Serial.write(cmd, sizeof(cmd));

 

Unikus
Offline
Зарегистрирован: 19.09.2021

Ух ты, мне аж поплохело в начале... Sadman , спасибо за ответ... А можно чуточку разжевать этот код для чайника ? Кстати, нужно ещё какие-то библиотеки подключать ? 

Unikus
Offline
Зарегистрирован: 19.09.2021

Вот , попробовал моргать экраном и ... ничего. С кодом всё правильно ?  На всякий случай ещё лист из мануала... 

Только в нём похоже опечатка, добавлен лишний байт ...http://vfl.ru/fotos/7cb419fd35928168.html

uint8_t ScrOn[] = {0x1B,0x42,0x4C,0x01};
uint8_t ScrOff[] = {0x1B,0x42,0x4C,0x00};
void setup() {
}

void loop() {
  
Serial.write(ScrOn, sizeof(ScrOn));
delay(1000);
Serial.write(ScrOff, sizeof(ScrOff));
delay(1000);
}

 

rkit
Онлайн
Зарегистрирован: 23.11.2016

А ты в курсе, что твой дисплей работает по rs232, что не то же самое, что uart?

Unikus
Offline
Зарегистрирован: 19.09.2021

Если  я правильно понимаю, то одно это интерфейс, а другое протокол... Не ? И какая мне разница ? Ведь другие данные получается передавать... 

rkit
Онлайн
Зарегистрирован: 23.11.2016

Нет

Unikus
Offline
Зарегистрирован: 19.09.2021

Ну дык я по 232 и передаю символы на дисплей...без проблем.

Здесь же написано... http://vfl.ru/fotos/6e82eecd35928253.html

rkit
Онлайн
Зарегистрирован: 23.11.2016

По ссылке ничего не написано про твою программу и твое оборудование.

b707
Offline
Зарегистрирован: 26.05.2017

Прежде чем передавать команды, нужно настроить параметры канала

Unikus
Offline
Зарегистрирован: 19.09.2021

rkit пишет:

По ссылке ничего не написано про твою программу и твое оборудование.

Ну, по тому как ты указал , что мой дисплей не работает по UART, подумалось , что ты в курсе. В шапке вообще т я написал , что за девайс. Если нужно, скину ссылку на даташит. Но , там всё просто с подключением... А что насчёт программы нужно сказать ? Выше я кинул код, которым пробовал только помигать дисплеем, чтобы понять как оно работает.

b707 пишет:
Прежде чем передавать команды, нужно настроить параметры канала

Канал настроен, буковки на дисплей передаются... кроме команд статуса ...

rkit
Онлайн
Зарегистрирован: 23.11.2016

Запущенный случай

nik182
Offline
Зарегистрирован: 04.05.2015

А кто не передаёт команды статуса? Или передаёт, но не верно? А было уже - кто то жаловался на подобное, а там терминал всё резал, что ascii буквам не соответствует. 

b707
Offline
Зарегистрирован: 26.05.2017

Unikus пишет:

Ну, по тому как ты указал , что мой дисплей не работает по UART, подумалось , что ты в курсе. В шапке вообще т я написал , что за девайс. Если нужно, скину ссылку на даташит. Но , там всё просто с подключением...

у тебя там, скорее всего, еще интерфейс УАРТ встроен. А даташит ты читаешь на голый контроллер дисплея. поэтому команды и не работают.

Unikus
Offline
Зарегистрирован: 19.09.2021

rkit пишет:

Запущенный случай

Ну, извини братуха, я не профи, спрашиваю как умею... 

Unikus
Offline
Зарегистрирован: 19.09.2021

b707 пишет:

у тебя там, скорее всего, еще интерфейс УАРТ встроен. 

Если не затруднит, глянь здесь пожалуйста, там про UART ничего не заметил... https://www.futurashop.it/Allegato_PDF_ENG/8150-GHB3224C.pdf

b707
Offline
Зарегистрирован: 26.05.2017

про Уарт ничего не вижу

 

в коде в #4 Serial.begin() забыл

Unikus
Offline
Зарегистрирован: 19.09.2021

Братья, получилось что-то. Объединил два тестовых кода . Короче, срабатывает по событию, то есть по нажатию кнопки... А как сделать , чтобы Ардуинка закидывала туда код при загрузке без вмешательства оператора ? 

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
uint8_t ScrOn[] = {0x1B,0x42,0x4C,0x01};
uint8_t ScrOff[] = {0x1B,0x42,0x4C,0x00};
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','R'},
  {'4','5','6','n'},
  {'7','8','9','S'},
  {'C','0','E','I'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

void setup(){
  Serial.begin(9600);
  
 }
  
void loop(){

 char customKey = customKeypad.getKey();
  
  if (customKey){
    Serial.write(ScrOn, sizeof(ScrOn));
delay(1000);
    Serial.write(ScrOff, sizeof(ScrOff));
delay(1000);
   // Serial.print(customKey);
   
  }
}
 
 
b707
Offline
Зарегистрирован: 26.05.2017

Unikus пишет:

А как сделать , чтобы Ардуинка закидывала туда код при загрузке без вмешательства оператора ?

повторяю. в код из сообщения #4 добавь
 
Serial.begin(9600);

 

 
Unikus
Offline
Зарегистрирован: 19.09.2021

b707 пишет:

про Уарт ничего не вижу

 

в коде в #4 Serial.begin() забыл

Упс, и правда . Не голова , а два уха... Спасибки, в другом коде уже дописано .... Я только начал программить , поэтому такие очевидные вещи могу и пропустить... :) Про инициализацию уже понял, нужно до лупа прописать... 

Unikus
Offline
Зарегистрирован: 19.09.2021

Хе-хе... я думал страшное позади... ан нет. Все команды выполняются , но встала проблема с выводом шрифта ...  

Включаю графический экран:

Затем выставляю тип и размер шрифта : 

Чтобы получить вот такой :

 

НО : возвращаясь к ранее написанному в мануале.

А Ардуинка шлёт именно ASCII ... И как теперь засылать символы в графическом режиме, ХЗ ? В мануале ни слова... Ужо по всякому перепробовал.... 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Serial.write() пробовал?  Ей похрен чо слать. 

Unikus
Offline
Зарегистрирован: 19.09.2021

DetSimen пишет:

Serial.write() пробовал?  Ей похрен чо слать. 

Проблема не в этом, если я правильно понимаю, то если перед засылкой самого символа нет байта ESC и двух байтов графической команды, то контроллер их  шлёт ТОЛЬКО на текстовый экран, то есть маленьким неизменяемым шрифтом...  Вот мне и кажется , что в мануале не указаны эти два магических байта... Или я неправильно понимаю и должны засылаться символы именно в графическом формате ? Хотя там написано, что на графическом экране могут использоваться все 4 типа шрифтов и размеров... 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ХЗ, мануал читать не доводилось. 

Unikus
Offline
Зарегистрирован: 19.09.2021

DetSimen пишет:

ХЗ, мануал читать не доводилось. 

Я выше ссылку на мануал кидал... если интересно. Там в принципе ничего особенного, а вот нужной мелочи нет.

Green
Offline
Зарегистрирован: 01.10.2015

Какой мелочи? Всё ж расписано. Чего надо то?

b707
Offline
Зарегистрирован: 26.05.2017

Unikus пишет:

Я выше ссылку на мануал кидал... если интересно. Там в принципе ничего особенного, а вот нужной мелочи нет.

какой мелочи нет? Вы прям как 3хлетний. сами ничего не можете. Ищите в мануале команду Graphic String print и разбирайтесь. как печатать текс в граф режиме

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Unikus пишет:

Проблема не в этом, если я правильно понимаю, то если перед засылкой самого символа нет байта ESC и двух байтов графической команды, то контроллер их  шлёт ТОЛЬКО на текстовый экран...

Интересно, это какая же религия не позволяет "заслать" ESC перед командой?

 

PS. По поводу названия темы: в дисплей не нужно отправлять 16-ричный код. 

Unikus
Offline
Зарегистрирован: 19.09.2021

andriano пишет:

Unikus пишет:

Проблема не в этом, если я правильно понимаю, то если перед засылкой самого символа нет байта ESC и двух байтов графической команды, то контроллер их  шлёт ТОЛЬКО на текстовый экран...

Интересно, это какая же религия не позволяет "заслать" ESC перед командой?

 

PS. По поводу названия темы: в дисплей не нужно отправлять 16-ричный код. 

Религия Святого Чайника ! Хе хе.... Да? А что тогда отправляется ? В мануале чёрным по белому написано... ESC заслать как раз не проблема... 

Unikus
Offline
Зарегистрирован: 19.09.2021

b707 пишет:

какой мелочи нет? Вы прям как 3хлетний. сами ничего не можете. Ищите в мануале команду Graphic String print и разбирайтесь. как печатать текс в граф режиме

 

Ну, хоть что-то да могу... Ребят, вы забыли как сами начинали ? Graphic String print смотрел, только вот думал что это  немного для другой цели ...Тем более , что там почти всё в корейских кракозябрах...  Благодарствую за совет, попробую копнуть в этом направлении...заодно и свой корейский освежу... :) 

b707
Offline
Зарегистрирован: 26.05.2017

Unikus пишет:

andriano пишет:

По поводу названия темы: в дисплей не нужно отправлять 16-ричный код. 

Да? А что тогда отправляется ? В мануале чёрным по белому написано... ESC заслать как раз не проблема... 

не смешите народ, никаких шестнадцатиричных кодов туда отправлять не надо. Между десятичным кодом ESC 27 и шестнадцатиричным 0x1b нет никакой разницы.

rkit
Онлайн
Зарегистрирован: 23.11.2016

Unikus пишет:

Ребят, вы забыли как сами начинали ?

Не забыл - я начинал с сапера на html/js. А до микроконтроллеров дорос лет через 12.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Unikus пишет:

Религия Святого Чайника ! Хе хе.... Да? А что тогда отправляется ? В мануале чёрным по белому написано... ESC заслать как раз не проблема... 

Если шутка, то плохая. Или ты серьезно такой дурак?

Unikus
Offline
Зарегистрирован: 19.09.2021

b707 пишет:

 

не смешите народ, никаких шестнадцатиричных кодов туда отправлять не надо. Между десятичным кодом ESC 27 и шестнадцатиричным 0x1b нет никакой разницы.

 

 В мануале представлено в шестнадцатиричном формате... Зачем мне ещё что-то выдумывать ? :)

 Сейчас встала другая проблемка... Если я объявлял и засылал команды в таком виде : 

uint8_t SetFont[] = {0x1B,0x46,0x4F,0x08,0x01};

..... 
void setup(){
  
  Serial.write(SetFont, sizeof(SetFont));
}

, то как быть в случае с текстовым символом ? Засылать код символа ? 

Unikus
Offline
Зарегистрирован: 19.09.2021

wdrakula пишет:

Unikus пишет:

Религия Святого Чайника ! Хе хе.... Да? А что тогда отправляется ? В мануале чёрным по белому написано... ESC заслать как раз не проблема... 

Если шутка, то плохая. Или ты серьезно такой дурак?

Задел за живое ?  :)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Unikus пишет:

как быть в случае с текстовым символом ? Ведь в такой массив символьную переменную не засунуть ? 

Я не понимаю когда троллят. Вдруг и правда дурак? Ты понимаешь, что {0x31,0x32,0x33,0x00}  и "123"  одно и тоже полностью? Или это клоунада? и {0x61,0x62,0x63,0} и "abc" ты поверишь? - тоже одно и тоже, сорри за каламбур. И для чего я нули в конце обоих массивов написал тоже не знаешь?

b707
Offline
Зарегистрирован: 26.05.2017

Unikus пишет:

то как быть в случае с текстовым символом ? Засылать код символа ? 

да как хотите, хотите сам символ, хотите его код в десятичном, шестнадцатиричном, восьмеричном или двоичном формате - контроллеру до лампочки.

Похоже вы самых базовых понятий программирования не знаете. Может какую-то книжку почитать про биты и байты7

Unikus
Offline
Зарегистрирован: 19.09.2021

Да уж, как в анекдоте: на американском форуме надают кучу советов, на еврейском зададут кучу наводящих вопросов, на русском обос...рут и выставят мудаком... Спасибо. Тогда возникает резонный вопрос: нахрена вы тут тусуетесь ? Хотя, ответ в анекдоте... 

rkit
Онлайн
Зарегистрирован: 23.11.2016

Уж точно не для того, чтобы бесплатно индивидуально учить с нуля программированию каждого дятла, что сюда забредет.

Unikus
Offline
Зарегистрирован: 19.09.2021

Дык в чём проблема ? Легче пройти мимо или разводить срач ? 

rkit
Онлайн
Зарегистрирован: 23.11.2016

Потому что до тебя не доходит, что если решил заняться разработкой, то придется ДОЛГО УЧИТЬСЯ, прежде чем получишь результат.

Logik
Offline
Зарегистрирован: 05.08.2014

rkit пишет:

Уж точно не для того, чтобы бесплатно индивидуально учить с нуля программированию каждого дятла, что сюда забредет.

Ниправ! Дятлы не забредают, дятлы залетают!

А тему эту пора деть куда-то.

b707
Offline
Зарегистрирован: 26.05.2017

Unikus пишет:

Да уж, как в анекдоте: на американском форуме надают кучу советов, на еврейском зададут кучу наводящих вопросов, на русском обос...рут и выставят мудаком... Спасибо. Тогда возникает резонный вопрос: нахрена вы тут тусуетесь ? Хотя, ответ в анекдоте... 

интересно, это реакция на мой ответ в #37?  Есть претензии к содержанию или к форме? Или это совет читать книжки так сильно возмутил вашу ранимую душу?

Unikus
Offline
Зарегистрирован: 19.09.2021

rkit пишет:

Потому что до тебя не доходит, что если решил заняться разработкой, то придется ДОЛГО УЧИТЬСЯ, прежде чем получишь результат.

Похоже это до тебя не доходит, что я учусь... А если ты даёшь советы платно, то повесь на дверях табличку... 

Unikus
Offline
Зарегистрирован: 19.09.2021

Logik пишет:

rkit пишет:

Уж точно не для того, чтобы бесплатно индивидуально учить с нуля программированию каждого дятла, что сюда забредет.

Ниправ! Дятлы не забредают, дятлы залетают!

А тему эту пора деть куда-то.

Да уж , пожалуй, чтобы другие не видели пафоса некоторых "гуру"... 

rkit
Онлайн
Зарегистрирован: 23.11.2016

Unikus пишет:

Похоже это до тебя не доходит, что я учусь...

Нет, ты не учишься. Учатся, читая учебник. С первой главы и по порядку. И выполняя задания. Ты же насилуешь мозги на форуме. Себе и форумчанам.

Unikus
Offline
Зарегистрирован: 19.09.2021

Это как раз ты насилуешь мозг форумчанам пустым трёпом... Я к тебе в темы не лезу.Не хочешь отвечать на вопросы  ? Вали из темы и не засирай... Не все такие как ты. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Unikus пишет:

Не все такие как ты. 

В том-то и беда, что существуют люди, которые, вместо того, чтобы самостоятельно почитать учебник, побираются по форумам, да еще и возмущаются, когда им указывают их место.

Unikus
Offline
Зарегистрирован: 19.09.2021

Беда в том, что существуют снобы, которые вместо того чтобы просто пройти мимо разводят срач... 

Unikus
Offline
Зарегистрирован: 19.09.2021

Вот за что я зауважал Sadmana, просто бросил кусок кода и пошёл дальше заниматься своими делами... в отличие от некоторых...