2 / 2 / 0
Регистрация: 27.02.2014
Сообщений: 86
1

Дисплей на контроллере ST7735 и Ucglib

12.12.2021, 00:00. Показов 5892. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Пытаюсь прикрутить Ucglib к своему проекту, но есть несколько проблем.
1. Никак не могу заставить отображаться русский язык.
2. Не понимаю, как в меню (да и вообще везде) изменять только определенный участок экрана.
Неужели всегда нужно обновлять все данные на дисплее?
Данную библиотеку использую по причине того, что это самая легкая из всех, что я пробовал с программным SPI.
Может кто подскажет, как заставить отображаться русский язык и можно ли обновлять только необходимые данные, а не весь экран?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2021, 00:00
Ответы с готовыми решениями:

STM32F103C8T6 и дисплей ST7735
Вывожу график на дисплей, размер окна графика 140х50 = 7000 точек. Сам дисплей 160х128 точек....

ST7735 + STM32
Доброго времени суток :) Помогите,пожалуйста, разобраться с datasheet контроллера ST7735 (дисплей...

STM32F103 + ST7735 + STemWin
Всем здравия. Подскажите пожалуйста с чего начать подключать STemWin? Мануал помогает как-то...

STM32F4Discovery + дисплейчик ST7735
Привет всем. Попал тут ко мне дисплейчик - http://www.ebay.com/itm/1-8-TFT-LCD-mod ... 1277wt_934...

LCD ST7735 и ST7789
Кто-нибудь задумывался и реализовывал полноценный модуль для работы с этими дисплеями на уровне...

29
612 / 373 / 69
Регистрация: 21.09.2008
Сообщений: 1,277
12.12.2021, 11:22 2
Цитата Сообщение от aleksandr_l Посмотреть сообщение
1. Никак не могу заставить отображаться русский язык.
Каким образом? Где код? Какой шрифт выбираете?
0
2 / 2 / 0
Регистрация: 27.02.2014
Сообщений: 86
12.12.2021, 12:00  [ТС] 3
Оставил минимум (только вывод на дисплей), чтобы было проще
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* Подключение библиотек */
#include <SPI.h>
#include "Ucglib.h"
 
/* Подключение шрифтов */
#include "RusFont12.h";
 
/* Настройка дисплея */
Ucglib_ST7735_18x128x160_SWSPI ucg(5, 6, 11, 12, 9);
 
void setup(void)
{
/*  Включаем подсветку дисплея */
  DDRC = (1 << DDC0);
  PORTC = PORTC | (1 << PORTC0); 
 
/* Инициализация дисплея */  
  ucg.begin(UCG_FONT_MODE_TRANSPARENT);
  ucg.setRotate90(); 
  ucg.clearScreen();
 
/* Установка цвета */
  ucg.setColor(255,255,255);
 
/* Вывод текста */  
  ucg.setFont(RusFont12);
  ucg.setPrintPos(50, 25);
  ucg.print("Меню");
 
}
 
void loop(void){}
Листинг файла "RusFont12.h"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
const ucg_fntpgm_uint8_t RusFont12[3924] UCG_FONT_SECTION(".progmem.RusFont12") = {
  0,40,30,247,246,15,2,204,6,78,32,255,0,15,247,15,
  252,5,9,9,6,1,253,16,16,8,8,152,96,32,80,32,
  7,9,9,7,1,254,16,16,8,8,8,152,102,80,32,5,
  10,10,6,1,252,16,16,8,8,152,96,0,0,32,32,7,
  11,11,7,1,252,16,16,8,8,8,152,102,0,0,32,32,
  5,16,16,6,1,252,64,64,112,112,0,0,16,16,8,8,
  152,96,0,0,32,32,7,17,17,7,1,252,64,64,112,112,
  0,0,16,16,8,8,8,152,102,0,0,32,32,5,12,12,
  6,1,0,80,80,32,32,0,0,16,16,8,8,152,96,7,
  13,13,7,1,0,80,80,32,32,0,0,16,16,8,8,8,
  152,102,5,13,13,6,1,0,80,80,0,80,80,0,0,16,
  16,8,8,152,96,7,14,14,7,1,0,80,80,0,80,80,
  0,0,16,16,8,8,8,152,102,7,13,13,8,1,252,34,
  20,8,0,0,8,8,4,4,4,12,24,240,8,13,13,9,
  1,251,34,20,8,0,0,8,12,7,4,4,12,24,240,6,
  9,9,7,1,251,8,8,4,4,4,12,24,244,12,8,9,
  9,9,1,250,8,12,7,4,4,12,24,244,12,6,10,10,
  7,1,250,8,8,4,4,4,12,24,240,4,4,8,10,10,
  9,1,249,8,12,7,4,4,12,24,240,4,4,6,12,12,
  7,1,248,8,8,4,4,4,12,24,240,0,68,40,16,8,
  12,12,9,1,247,8,12,7,4,4,12,24,240,0,68,40,
  16,6,10,10,7,1,250,8,8,4,68,68,12,24,240,4,
  4,8,10,10,9,1,249,8,12,7,68,68,12,24,240,4,
  4,6,12,12,7,1,252,20,20,0,0,8,8,4,4,4,
  12,24,240,8,12,12,9,1,251,20,20,0,0,8,12,7,
  4,4,12,24,240,6,15,15,7,1,252,20,20,0,20,20,
  0,0,8,8,4,4,4,12,24,240,8,15,15,9,1,251,
  20,20,0,20,20,0,0,8,12,7,4,4,12,24,240,15,
  12,24,16,1,251,0,16,0,16,0,0,0,0,1,18,1,
  18,64,236,128,128,128,128,128,136,67,8,60,0,17,12,36,
  17,1,251,0,16,0,0,16,0,0,0,0,0,0,0,1,
  18,0,1,18,0,64,255,128,128,128,0,128,128,0,128,136,
  0,67,8,0,60,0,0,11,11,22,12,0,252,1,0,1,
  0,0,0,0,0,17,32,17,32,255,224,0,0,0,0,0,
  128,0,128,13,11,22,13,0,252,1,0,1,0,0,0,0,
  0,17,32,17,32,255,248,0,0,0,0,0,128,0,128,15,
  9,18,16,1,250,1,18,1,18,64,236,128,128,128,128,128,
  148,67,20,60,8,0,8,17,9,27,17,1,250,1,18,0,
  1,18,0,64,255,128,128,128,0,128,128,0,128,148,0,67,
  20,0,60,8,0,0,8,0,11,9,18,12,0,250,17,32,
  17,32,255,224,0,0,0,0,2,128,2,128,1,0,1,0,
  13,9,18,13,0,250,17,32,17,32,255,248,0,0,0,0,
  2,128,2,128,1,0,1,0,15,15,30,16,1,250,0,16,
  0,16,0,40,0,40,0,0,0,0,1,18,1,18,64,236,
  128,128,128,128,128,148,67,20,60,8,0,8,17,15,45,17,
  1,250,0,16,0,0,16,0,0,40,0,0,40,0,0,0,
  0,0,0,0,1,18,0,1,18,0,64,255,128,128,128,0,
  128,128,0,128,148,0,67,20,0,60,8,0,0,8,0,11,
  15,30,12,0,250,1,0,1,0,2,128,2,128,0,0,0,
  0,17,32,17,32,255,224,0,0,0,0,2,128,2,128,1,
  0,1,0,13,15,30,13,0,250,1,0,1,0,2,128,2,
  128,0,0,0,0,17,32,17,32,255,248,0,0,0,0,2,
  128,2,128,1,0,1,0,17,9,27,18,1,251,0,7,0,
  0,24,128,1,32,128,64,255,0,128,192,0,128,128,0,128,
  138,0,67,10,0,60,0,0,18,9,27,18,1,251,0,7,
  0,0,24,128,1,32,128,64,255,192,128,192,0,128,128,0,
  128,138,0,67,10,0,60,0,0,13,8,16,14,0,252,0,
  112,33,136,34,8,255,240,0,0,0,0,1,64,1,64,13,
  8,16,13,0,252,0,224,35,16,36,16,255,248,0,0,0,
  0,2,128,2,128,17,15,45,18,1,251,0,16,0,0,16,
  0,0,40,0,0,40,0,0,0,0,0,0,0,0,7,0,
  0,24,128,1,32,128,64,255,0,128,192,0,128,128,0,128,
  128,0,67,0,0,60,0,0,18,15,45,18,1,251,0,16,
  0,0,16,0,0,40,0,0,40,0,0,0,0,0,0,0,
  0,7,0,0,24,128,1,32,128,64,255,192,128,192,0,128,
  128,0,128,128,0,67,0,0,60,0,0,13,10,20,14,0,
  0,1,0,1,0,2,128,2,128,0,0,0,0,0,112,33,
  136,34,8,255,240,13,10,20,13,0,0,2,0,2,0,5,
  0,5,0,0,0,0,0,0,224,35,16,36,16,255,248,8,
  10,10,9,1,0,34,50,37,37,32,32,46,49,33,254,10,
  10,20,10,1,0,34,0,50,0,37,0,37,0,32,0,32,
  0,46,0,49,0,33,0,255,192,8,10,10,9,0,0,34,
  50,37,37,32,32,46,49,33,254,10,10,20,10,0,0,34,
  0,50,0,37,0,37,0,32,0,32,0,46,0,49,0,33,
  0,255,192,9,18,36,10,1,249,16,0,16,0,40,0,40,
  0,0,0,0,0,56,0,64,0,128,0,76,0,48,0,64,
  0,64,0,128,0,128,0,128,0,65,128,62,0,9,17,34,
  9,1,250,16,0,16,0,40,0,40,0,0,0,0,0,56,
  0,108,0,16,0,56,0,71,128,64,0,128,0,128,0,128,
  0,65,128,62,0,7,11,11,7,0,0,8,8,20,20,0,
  0,28,32,64,34,252,8,11,11,8,0,0,8,8,20,20,
  0,0,28,54,8,28,227,14,8,16,15,1,0,0,24,0,
  44,0,36,128,44,128,20,128,4,64,56,63,192,16,8,16,
  16,1,255,0,24,0,44,0,36,128,44,128,20,128,4,64,
  59,63,192,5,7,7,6,0,0,48,88,72,88,40,8,240,
  8,6,6,8,0,0,24,36,36,24,24,231,14,12,24,15,
  1,252,0,24,0,44,0,36,128,44,128,20,128,4,64,56,
  63,192,0,0,0,0,1,0,1,0,16,12,24,16,1,251,
  0,24,0,44,0,36,128,44,128,20,128,4,64,59,63,192,
  0,0,0,0,1,0,1,0,5,11,11,6,0,252,48,88,
  72,88,40,8,240,0,0,128,128,8,10,10,8,0,252,24,
  36,36,24,24,231,0,0,64,64,14,16,32,15,1,252,0,
  16,0,16,0,0,0,0,0,24,0,44,0,36,128,44,128,
  20,128,4,64,56,63,192,0,0,0,0,1,0,1,0,16,
  16,32,16,1,251,0,16,0,16,0,0,0,0,0,24,0,
  44,0,36,128,44,128,20,128,4,64,63,63,192,0,0,0,
  0,1,0,1,0,5,15,15,6,0,252,32,32,0,0,48,
  88,72,88,40,8,240,0,0,128,128,8,14,14,8,0,252,
  8,8,0,0,24,36,36,24,24,231,0,0,64,64,14,13,
  26,15,1,251,0,24,0,44,0,36,128,44,128,20,128,4,
  64,56,63,192,0,0,0,40,0,40,0,16,0,16,16,13,
  26,16,1,250,0,24,0,44,0,36,128,44,128,20,128,4,
  64,59,63,192,0,0,0,40,0,40,0,16,0,16,5,13,
  13,6,0,250,48,88,72,88,40,8,240,0,0,80,80,32,
  32,8,12,12,8,0,250,24,36,36,24,24,231,0,0,40,
  40,16,16,9,14,28,10,1,253,2,0,2,0,0,0,0,
  0,3,0,5,128,4,128,4,128,67,128,128,128,128,128,129,
  0,66,0,60,0,11,14,28,12,1,251,2,0,2,0,0,
  0,0,0,3,0,5,128,4,128,4,128,67,224,128,128,128,
  128,129,0,66,0,60,0,5,11,11,4,0,0,32,32,0,
  0,48,88,72,88,40,8,240,8,10,10,8,0,0,16,16,
  0,0,24,36,36,40,16,255,9,16,32,10,1,253,2,0,
  2,0,5,0,5,0,0,0,0,0,3,0,5,128,4,128,
  4,128,67,128,128,128,128,128,129,0,66,0,60,0,11,16,
  32,12,1,251,2,0,2,0,5,0,5,0,0,0,0,0,
  3,0,5,128,4,128,4,128,67,224,128,128,128,128,129,0,
  66,0,60,0,5,13,13,4,0,0,32,32,80,80,0,0,
  48,88,72,88,40,8,240,8,12,12,8,0,0,16,16,40,
  40,0,0,24,36,36,40,16,255,14,9,18,16,0,0,1,
  128,6,0,24,0,32,0,32,0,31,248,0,4,128,4,127,
  248,16,9,18,17,1,0,1,128,6,0,24,0,32,0,32,
  0,31,248,0,4,128,4,127,255,14,9,18,15,0,0,1,
  128,6,0,24,0,32,0,32,0,31,248,0,4,0,4,255,
  248,16,9,18,16,0,0,1,128,6,0,24,0,32,0,32,
  0,31,248,0,4,0,4,255,255,13,11,22,14,1,255,0,
  8,0,48,0,232,1,40,1,16,0,128,64,96,128,16,128,
  16,128,96,127,128,15,10,20,16,1,0,0,8,0,48,0,
  232,1,40,1,16,64,128,128,96,128,16,128,16,127,254,8,
  10,10,9,0,0,1,6,29,37,34,16,12,2,2,252,11,
  10,20,11,0,0,0,128,3,0,14,128,18,128,17,0,8,
  0,6,0,1,0,1,0,255,224,6,10,10,7,1,0,32,
  32,32,248,32,32,32,36,36,24,11,13,26,11,1,0,4,
  0,4,0,0,0,0,128,0,192,0,128,4,128,12,128,4,
  128,140,128,128,128,192,128,127,224,8,13,13,9,0,0,8,
  8,0,1,6,24,32,32,16,12,2,2,252,11,13,26,11,
  0,0,4,0,4,0,0,0,0,128,3,0,12,0,16,0,
  16,0,8,0,6,0,1,0,1,0,255,224,8,7,7,9,
  1,0,231,36,24,24,24,36,231,11,19,38,11,1,250,4,
  0,4,0,0,0,0,128,0,192,0,128,4,128,12,128,4,
  128,140,128,128,128,192,128,127,224,0,0,0,0,20,0,20,
  0,8,0,8,0,8,19,19,9,0,250,8,8,0,1,6,
  24,32,32,16,12,2,2,252,0,0,80,80,32,32,11,19,
  38,11,0,250,4,0,4,0,0,0,0,128,3,0,12,0,
  16,0,16,0,8,0,6,0,1,0,1,0,255,224,0,0,
  0,0,40,0,40,0,16,0,16,0,13,14,28,14,1,255,
  0,8,0,48,0,192,1,8,0,48,0,232,1,40,1,16,
  0,128,64,96,128,16,128,16,128,96,127,128,15,13,26,16,
  1,0,0,8,0,48,0,192,1,8,0,48,0,232,1,40,
  1,16,64,128,128,96,128,16,128,16,127,254,8,13,13,8,
  0,0,1,6,24,33,7,29,37,34,16,12,2,2,252,11,
  13,26,11,0,0,0,128,3,0,12,0,16,128,3,0,14,
  128,18,128,17,0,8,0,6,0,1,0,1,0,255,224,6,
  10,10,7,1,253,248,68,68,68,68,68,120,64,64,224,5,
  7,7,6,1,0,112,136,128,128,128,136,112,7,7,7,8,
  1,0,254,146,146,16,16,16,124,8,10,10,9,1,253,231,
  36,36,36,24,24,24,16,16,224,9,13,26,10,1,253,8,
  0,24,0,8,0,107,0,156,128,136,128,136,128,136,128,156,
  128,107,0,8,0,8,0,28,0,8,7,7,9,1,0,231,
  36,24,24,24,36,231,7,9,9,8,1,254,238,68,68,68,
  68,68,254,2,2,7,7,7,8,1,0,238,68,68,68,60,
  4,14,11,7,14,12,1,0,238,224,68,64,68,64,68,64,
  68,64,68,64,255,224,11,9,18,12,1,254,238,224,68,64,
  68,64,68,64,68,64,68,64,255,224,0,32,0,32,8,7,
  7,9,1,0,248,144,144,30,17,17,62,9,7,14,10,1,
  0,227,128,65,0,65,0,121,0,69,0,69,0,251,128,10,
  7,14,11,1,0,28,0,8,0,8,0,121,192,136,128,136,
  128,119,0,6,7,7,7,1,0,112,72,4,60,4,136,112,
  11,7,14,12,1,0,227,128,68,64,72,32,120,32,72,32,
  68,64,227,128,6,7,7,7,1,0,60,72,72,56,24,40,
  204,11,11,22,11,0,0,4,0,4,0,10,0,10,0,10,
  0,17,0,17,0,31,0,32,128,32,128,241,224,10,11,22,
  10,0,0,255,128,33,128,32,128,32,128,32,0,63,128,32,
  192,32,64,32,64,32,128,255,0,10,11,22,10,0,0,255,
  0,32,128,32,64,32,64,32,128,63,0,32,128,32,64,32,
  64,32,128,255,0,9,11,22,9,0,0,255,128,33,128,32,
  128,32,128,32,0,32,0,32,0,32,0,32,0,32,0,248,
  0,11,13,26,11,0,254,63,224,8,128,8,128,8,128,8,
  128,16,128,16,128,16,128,16,128,32,128,255,224,128,96,128,
  32,10,11,22,10,0,0,255,128,33,128,32,128,34,128,34,
  0,62,0,34,64,34,64,32,128,32,128,255,128,15,11,22,
  15,0,0,243,158,49,24,17,16,9,32,5,64,11,160,9,
  32,17,16,49,24,33,8,243,158,7,11,11,8,1,0,188,
  194,130,2,4,60,2,2,2,130,124,11,11,22,11,0,0,
  251,224,33,128,33,128,34,128,38,128,36,128,44,128,40,128,
  48,128,48,128,251,224,11,15,30,11,0,0,17,0,14,0,
  0,0,0,0,251,224,33,128,33,128,34,128,34,128,36,128,
  40,128,40,128,48,128,48,128,251,224,11,11,22,11,1,0,
  249,224,32,128,33,0,34,0,36,0,46,0,50,0,33,0,
  33,0,32,128,249,224,14,11,22,15,1,0,127,192,33,0,
  33,0,33,0,33,0,33,0,33,28,33,8,33,8,161,8,
  192,240,14,11,22,14,0,0,240,60,48,48,48,48,40,80,
  40,80,40,144,36,144,36,144,35,16,35,16,251,124,11,11,
  22,11,0,0,251,224,32,128,32,128,32,128,32,128,63,128,
  32,128,32,128,32,128,32,128,251,224,10,11,22,10,1,0,
  30,0,33,0,64,128,128,64,128,64,128,64,128,64,128,64,
  64,128,33,0,30,0,11,11,22,11,0,0,255,224,32,128,
  32,128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,
  251,224,9,11,22,9,0,0,255,0,33,128,32,128,32,128,
  33,128,63,0,32,0,32,0,32,0,32,0,248,0,9,11,
  22,10,1,0,30,128,33,128,64,128,128,128,128,0,128,0,
  128,0,128,128,64,128,33,0,30,0,9,11,22,9,1,0,
  255,128,136,128,136,128,136,128,8,0,8,0,8,0,8,0,
  8,0,8,0,62,0,11,11,22,11,0,0,241,224,32,128,
  16,128,17,0,9,0,9,0,10,0,6,0,68,0,68,0,
  56,0,11,11,22,11,0,0,14,0,4,0,63,128,68,64,
  132,32,132,32,132,32,68,64,63,128,4,0,14,0,11,11,
  22,11,1,0,243,192,17,0,18,0,10,0,12,0,4,0,
  10,0,26,0,17,0,32,128,241,224,11,13,26,11,0,254,
  251,224,32,128,32,128,32,128,32,128,32,128,32,128,32,128,
  32,128,32,128,255,224,0,96,0,32,9,11,22,9,1,0,
  227,128,65,0,65,0,65,0,65,0,65,0,63,0,1,0,
  1,0,1,0,3,128,15,11,22,15,0,0,243,158,33,8,
  33,8,33,8,33,8,33,8,33,8,33,8,33,8,33,8,
  255,254,15,13,26,15,0,254,243,158,33,8,33,8,33,8,
  33,8,33,8,33,8,33,8,33,8,33,8,255,254,0,6,
  0,2,13,11,22,14,0,0,255,0,132,0,132,0,4,0,
  4,0,7,240,4,24,4,8,4,8,4,16,31,224,15,11,
  22,15,1,0,248,62,32,8,32,8,32,8,32,8,63,136,
  32,200,32,72,32,72,32,200,255,62,14,11,22,15,1,0,
  7,192,1,0,1,0,1,0,1,0,127,0,193,28,129,8,
  129,8,65,8,62,240,9,11,22,10,1,0,188,0,194,0,
  129,0,128,128,0,128,31,128,0,128,128,128,129,0,66,0,
  60,0,17,11,33,18,0,0,248,124,0,32,130,0,33,1,
  0,34,0,128,34,0,128,62,0,128,34,0,128,34,0,128,
  33,1,0,32,130,0,248,124,0,11,11,22,11,0,0,31,
  224,32,128,64,128,64,128,32,128,31,128,4,128,8,128,16,
  128,32,128,227,224,6,7,7,7,1,0,112,136,8,120,136,
  136,124,5,11,11,6,1,0,56,64,128,128,240,136,136,136,
  136,136,112,6,7,7,7,1,0,248,68,68,120,68,68,248,
  6,7,7,7,1,0,252,68,68,64,64,64,240,7,9,9,
  8,1,254,126,20,36,36,36,36,254,130,130,5,7,7,6,
  1,0,112,136,248,128,128,136,112,11,7,14,12,1,0,238,
  224,36,128,21,0,14,0,21,0,36,128,238,224,5,7,7,
  6,1,0,112,72,8,48,8,136,112,7,7,7,8,1,0,
  238,76,84,84,84,100,238,7,11,11,8,1,0,68,56,0,
  0,238,76,84,84,84,100,238,7,7,7,8,1,0,238,72,
  80,112,72,72,230,11,7,14,12,1,0,254,0,68,0,68,
  0,68,224,68,64,196,64,195,128,9,7,14,10,1,0,193,
  128,99,0,99,0,85,0,85,0,73,0,235,128,7,7,7,
  8,1,0,238,68,68,124,68,68,238,5,7,7,6,1,0,
  112,136,136,136,136,136,112,7,7,7,8,1,0,254,68,68,
  68,68,68,238,255,255,255,255,255,255,255,255,255,255,255,255,
  255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
  255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
  255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
  255,255,255,255};
U8Glib эти шрифты работают.
Причем, не выводится ни русский ни английский текста.
Если в файл "RusFont12.h" запихать английский шрифт, то он отрабатывает корректно.
0
612 / 373 / 69
Регистрация: 21.09.2008
Сообщений: 1,277
12.12.2021, 21:44 4
Цитата Сообщение от aleksandr_l Посмотреть сообщение
Причем, не выводится ни русский ни английский текста.
Как-то подозрительно выглядит у Вас описание секции шрифта
C
1
const ucg_fntpgm_uint8_t RusFont12[3924] UCG_FONT_SECTION(".progmem.RusFont12") = ...
В исходниках если написано имя шрифта в секции
C
1
2
const ucg_fntpgm_uint8_t ucg_font_robot_de_niro_hn[172] UCG_FONT_SECTION("ucg_font_robot_de_niro_hn") = {
...
то оно совпадает с именем массива. Попробуйте убрать из секции подстроку ".progmem."
C
1
const ucg_fntpgm_uint8_t RusFont12[3924] UCG_FONT_SECTION("RusFont12") = {...
и пересобрать скетч.
Да, у Вас исходник в кодировке UTF-8?
0
2 / 2 / 0
Регистрация: 27.02.2014
Сообщений: 86
13.12.2021, 05:23  [ТС] 5
Цитата Сообщение от sharpey Посмотреть сообщение
Как-то подозрительно выглядит у Вас описание секции шрифта
.progmem. просто переносит массив в память программ.
В любом случае пробовал и без .progmem. - не работает.
Пробовал даже менять массив в исходниках самой библиотеки, но результат без изменений.

Цитата Сообщение от sharpey Посмотреть сообщение
Да, у Вас исходник в кодировке UTF-8?
Да, проверил через notepsd++
0
612 / 373 / 69
Регистрация: 21.09.2008
Сообщений: 1,277
13.12.2021, 15:22 6
aleksandr_l, попробуем проанализировать кодировку первой буквы в строке 28 ("Меню") Вашего примера. Кириллическая буква 'М' кодируется в UTF-8 двумя последовательными байтами 20810 и 15610 (в шестнадцатеричном виде 0xD0 0x9C, согласно этому сайту). Для правильного сопоставления кодировки текста с выбранным шрифтом должна быть промежуточная функция, выполняющая преобразование из UTF-8 в другую кодовую страницу, под которую разработан шрифт. Понимаете?
Шрифт RusFont12 для какой кодировки - CP866, CP1251, KOI8-R?

Добавлено через 5 часов 39 минут
Здесь тема про малаяламский (???) язык. Симптомы проблемы те же.
0
2 / 2 / 0
Регистрация: 27.02.2014
Сообщений: 86
13.12.2021, 16:50  [ТС] 7
Цитата Сообщение от sharpey Посмотреть сообщение
Шрифт RusFont12 для какой кодировки
Точно уже не помню, но всегда использую UTF-8 и с U8Glib никогда проблем не возникало.
Брал шрифты из U8Glib - не отображаются вообще.

Сейчас откопал "tft_Ucglig_gr" в ней все работает как положено - потом нужно будет сравнить библиотеки, глянуть почему не работает русский с "Ucglig"

А вот по поводу изменения показаний, остались вопросы.
Дело в том, что каждый новый вывод показания, накладывается на предыдущий и получается каша.
0
612 / 373 / 69
Регистрация: 21.09.2008
Сообщений: 1,277
13.12.2021, 18:32 8
Цитата Сообщение от aleksandr_l Посмотреть сообщение
каждый новый вывод показания, накладывается на предыдущий и получается каша
Думаю, в строке 18 примера
C
1
ucg.begin(UCG_FONT_MODE_TRANSPARENT);
надо записать как
C
1
ucg.begin(UCG_FONT_MODE_SOLID);
В одной теме на другом сайте нашёл кириллические шрифты для данной библиотеки, попробуйте их.
Вложения
Тип файла: zip unifont11_cyr.zip (12.2 Кб, 17 просмотров)
0
2 / 2 / 0
Регистрация: 27.02.2014
Сообщений: 86
13.12.2021, 19:57  [ТС] 9
Скормил следующее куче разных шрифтов в связке с "Ucglig"
C++
1
2
3
4
5
6
char i[] = "\320\237\321\200\320\270\320\262\320\265\321\202"; // текст "Привет" в кодировке UTF-8.
char j[] = "\317\360\350\342\345\362"; // текст "Привет" в кодировке Windows-1251.
char k[] = "\217\340\250\242\245\342"; // текст "Привет" в кодировке CP-866.
char l[] = "\360\322\311\327\305\324"; // текст "Привет" в кодировке KOI-8R.
char m[] = "\277\340\330\322\325\342"; // текст "Привет" в кодировке ISO-8859-5.
char n[] = "Привет";                   // текст "Привет" в кодировке файла скетча.
По итогу, либо кракозябры, либо вообще ничего.

Цитата Сообщение от sharpey Посмотреть сообщение
В одной теме на другом сайте нашёл кириллические шрифты для данной библиотеки, попробуйте их.
Из предложенного, сработал только unifont11_cp1251.h, но со строкой
C++
1
char l[] = "\360\322\311\327\305\324"; // текст "Привет" в кодировке KOI-8R.
Все остальное в кракозябрах.
0
3 / 3 / 0
Регистрация: 02.01.2016
Сообщений: 145
05.07.2022, 18:05 10
Всем доброго времени суток!
Имею экран ST7735 1,8 128x160 TFT. Использую библиотеку Ucglib.h.
Самый большой шрифт в этой библиотеке это - ucg_font_inb63_mn.
Но мне нужны шрифты еще больше (чтобы две цифры почти впритык помещались на этот дисплей). Подскажите, как выйти из положения пожалуйста!
Приложил все используемые этой библиотекой шрифты. И, конечно, желательно, чтобы эти шрифты, большие чем 63, были плавными, как все шрифты в этой библиотеке..., но не как в библиотеке Adafruit_GFX.h (угловато-пиксельные)...
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "Ucglib.h"  
Ucglib_ST7735_18x128x160_HWSPI ucg(9, 10, 8);  // (A0=9, CS=10, RESET=8)
int Variable1;
 
void setup() {
  ucg.begin(UCG_FONT_MODE_SOLID);  
  ucg.clearScreen();  // Очистить экран
 
  // Настройка ориентации дисплея:
  ucg.setRotate270();  // 90, 180 или 270 или по умолчанию
 
  ucg.setFont(ucg_font_inb27_mr);
 
  ucg.setColor(0, 255, 255, 255);  // Set color (0,R,G,B)
  ucg.setColor(1, 0, 0, 0);  // Set color of text background (1,R,G,B)
  ucg.setPrintPos(40, 70);  // Set position (x,y)
  ucg.print("Hel");  // Print text or value
 
  ucg.setColor(0, 255, 0, 0);  // Set color (0,R,G,B)
  ucg.setPrintPos(40, 98);  // Set position (x,y)
  ucg.print("36");  // Print text or value
  delay(2000);
  ucg.clearScreen();  // Очистите экран
  delay(1000);
}  
 
void loop() {  
  
  Variable1++;  // Increase variable by 1
  if(Variable1 > 15)  // If Variable1 is greater than 150
  {
    Variable1 = 0;  // Set Variable1 to 0
  }
  ucg.setFont(ucg_font_inb63_mn);  // Set font      
  ucg.setFontRefHeightText();
  ucg.setColor(0, 255, 255, 0);  // Set color (0,R,G,B)
  ucg.setColor(1, 0, 0, 0);  // Set color of text background (1,R,G,B)
  ucg.setPrintPos(40, 90);  // Set position (x,y)
  ucg.print(Variable1);  // Print text or value
 
  if(Variable1 < 10)  
  {
    ucg.print(" ");
  }
  if(Variable1 < 100)  
  {
    ucg.print(" ");
  }
  delay(500);
}
Вложения
Тип файла: pdf fontsize.pdf (693.2 Кб, 15 просмотров)
0
612 / 373 / 69
Регистрация: 21.09.2008
Сообщений: 1,277
06.07.2022, 08:09 11
Цитата Сообщение от mike84 Посмотреть сообщение
желательно, чтобы эти шрифты, большие чем 63, были плавными, как все шрифты в этой библиотеке..., но не как в библиотеке Adafruit_GFX.h (угловато-пиксельные)
Типа такого?

Ссылка на github автора видео в описании ролика.
1
3 / 3 / 0
Регистрация: 02.01.2016
Сообщений: 145
06.07.2022, 10:31 12
Цитата Сообщение от sharpey Посмотреть сообщение
Типа такого?
Да. Но я не понял какой на видео размер экрана. Мне нужно, чтобы помещались две цифры впритык.

Добавлено через 52 секунды
Гляну ссылку! Посмотрю подойдет или нет. Спасибо!

Добавлено через 1 час 24 минуты
Глянул. Там самый большой шрифт dig29x36_c3, но это не достаточно... - нужно больше высоты 63 пикселя.
0
3 / 3 / 0
Регистрация: 02.01.2016
Сообщений: 145
07.07.2022, 11:36 13
https://youtube.com/shorts/nSv... ture=share
0
3 / 3 / 0
Регистрация: 02.01.2016
Сообщений: 145
08.07.2022, 17:11 14
Друзья, так пока ничего и не нашел большего шрифта, чем на видео.... Это действительно проблема? Подскажите где поискать и как быть?
0
Эксперт .NET
10536 / 6464 / 1502
Регистрация: 25.05.2015
Сообщений: 19,592
Записей в блоге: 14
08.07.2022, 18:56 15
Цитата Сообщение от mike84 Посмотреть сообщение
как быть
Самому нарисовать. Один раз попотеешь, научишься, зато больше искать не придётся.
1
3 / 3 / 0
Регистрация: 02.01.2016
Сообщений: 145
08.07.2022, 19:01 16
Цитата Сообщение от Rius Посмотреть сообщение
Самому нарисовать. Один раз попотеешь, научишься, зато больше искать не придётся.
Я бы с удовольствием, но даже не знаю откуда и начать....
0
Эксперт .NET
10536 / 6464 / 1502
Регистрация: 25.05.2015
Сообщений: 19,592
Записей в блоге: 14
08.07.2022, 19:03 17
С изучения формата структур данных, из которых состоит шрифт.
Затем вручную составить шрифт, содержащий хотя бы парочку символов.
...

Не боги шрифты ваяют.
0
3 / 3 / 0
Регистрация: 02.01.2016
Сообщений: 145
08.07.2022, 19:07 18
Цитата Сообщение от Rius Посмотреть сообщение
Не боги шрифты ваяют.
Ну это очевидно, просто чтобы сейчас войти в тему это нужно убить уйму времени...
Если бы была методичка, то да... или видеоурок какой... а так.... ну посмотрим...
0
Эксперт .NET
10536 / 6464 / 1502
Регистрация: 25.05.2015
Сообщений: 19,592
Записей в блоге: 14
08.07.2022, 19:12 19
Если вам нужны крупными только цифры, что можно предположить по видео, то можно обойтись всего лишь десятком картинок, изображающих 0...9. Это ещё проще.

Добавлено через 5 минут
А если 7-сегментные дисплеи вам глаза не режут, можно обойтись всего лишь двумя рисунками - горизонтального и вертикального сегментов.
И будет Семисегментные часы
Да их можно даже не рисовать заранее, а использовать встроенные функции заливки прямоугольников. Но, ожидаю, будет работать чуть медленнее.
1
3 / 3 / 0
Регистрация: 02.01.2016
Сообщений: 145
08.07.2022, 19:22 20
Цитата Сообщение от Rius Посмотреть сообщение
Если вам нужны крупными только цифры, что можно предположить по видео, то можно обойтись всего лишь десятком картинок, изображающих 0...9. Это ещё проще.
Да, пока именно так и есть - только цифры... дальше будет видно.
Цитата Сообщение от Rius Посмотреть сообщение
А если 7-сегментные дисплеи вам глаза не режут
Вот это конечно крайне не желательно... я люблю чтобы все было приятно и эстетично, раз уж делаю... Конечно если сделать и забыть, то можно и купить натуральные семисегментные и вообще закрыть вопрос (чувствую, что еще немного потрипыхаюсь и так и сделаю).... Но хочется другого...
0
08.07.2022, 19:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2022, 19:22
Помогаю со студенческими работами здесь

st7735 проблема с пролистыванием на экране.
Использую модуль st7735 1.8 tft. Столкнулся с проблемой при создании функции пролистывания на...

Спрошу-ка я тоже про экнанчик. stm32f4 + st7735
Хоть маленький, зато всего 5 проводов. Вот только не работает в моих руках :( Есть ли у кого-то...

ESP32 Вывод на экран ST7735 с драйвером ST7789 240х240
пытаюсь вывести хоть что нибудь на экран, пока безуспешно #include &lt;Adafruit_ST7735.h&gt; ...

Arduino + 1.8" TFT + Adafruit ST7735 + BMP + SDCard = fail
Дано: &amp;заголовок + код void showTest() { char* titletxt = &quot;Test mode&quot;; printCH(0,1,titletxt);...

После установки Ubuntu дисплей не определяется: "Неизвестный дисплей"
Доброго времени суток! Ноутбук: Asus K53SM. Видеоадаптеры: Intel HD Graphics 3000 (встроенный)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru