GyverOLED. Вопросы по библиотеке

bort707

★★★★★★✩
21 Сен 2020
2,898
862
Вы уже не первый, кто пишет что строчки на этой либе отображаются неверно.
для ОЛЕД много библиотек, поищите другую.
 
  • Лойс +1
Реакции: ru3gp

ru3gp

✩✩✩✩✩✩✩
6 Янв 2022
3
0
... для ОЛЕД много библиотек, поищите другую.
Спасибо! Попробовал различные варианты и с текстом и с фигурами, с буфером и без, и тоже пришел к такому же выводу. А жаль :(
Но в некоторых проектах возможно эта библиотека и вполне устроит.
 

wertfgh

✩✩✩✩✩✩✩
28 Май 2023
1
0
Можно ли как-то на этой библиотеке инвертировать всё на дисплее по иску ?
 

CHE77

✩✩✩✩✩✩✩
5 Ноя 2020
6
0
Максимальный размер букв 32 пикселя. Это пол экрана. Как сделать во весь экран? Если убрать ограничение масштаба в библиотеке, то криво рисует.
Также не могу вывести заглавную Ё с точками.
 
Изменено:

CHE77

✩✩✩✩✩✩✩
5 Ноя 2020
6
0
Подскажите, пожалуйста. Как вывести символ по его коду?
 

CHE77

✩✩✩✩✩✩✩
5 Ноя 2020
6
0
@CHE77, поясните что вы имеете в виду под символом и кодом - обычно для этого используются шрифты.
делаю обучающий планшет. Нужно по нажатию на матричную клавиатуру 6х6 выводить символ на экран.
Вот могу связать код клавиши с кодировкой ASCII, или по тому коду что в charMap.h (c 32 начинается) и что дальше?
Каким методом вывести символ в OLED?

кирилицу так вывожу
почему то надо создавать массив на 4 байта и затирать последние и даже что вне массива. Иначе полсе нужной буквы выводит мусор на 3 знака.
Понятно что костыль. Вот и решил узнать как правильно это делать.


//customKey с матричной клавитуры от 1 до 33 - кирилица

int j = 2;
char letter[4];
letter[j - 2] = 32;
letter[j - 1] = 32;
letter[j] = -48;
if (customKey < 7) {
letter[j + 1] = -113 + customKey;
} else {
letter[j + 1] = -114 + customKey;
}
letter[j + 2] = 13;
letter[j + 3] = 10;
oled.println(letter);
if (letter == 7) { // для точек Ё
oled.circle(60, 21, 2, OLED_FILL); // четвёртый аргумент: параметр фигуры
oled.circle(69, 21, 2, OLED_FILL); // четвёртый аргумент: параметр фигуры
}


вот думал что с латиницей будет просто
C++:
char letter[1];
customKey = 1;// для моей английской А
letter[0] = customKey + 64;
oled.println(letter);
но вот так выводит букву А
 

Вложения

vortigont

★★★★★✩✩
24 Апр 2020
910
489
Saint-Petersburg, Russia
Функция печати ищет конец строки, нулевой байт, и будет печатать из памяти байты подряд пока не наткнется на нулл.
попробуйте так:

C++:
char mystring[2] = {0,0};
mysting[0] = 0x40;  // нужный acsii код
Serial.println(mysting);
 
Изменено:
  • Лойс +1
Реакции: CHE77