質問編集履歴
10
一部修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -212,7 +212,7 @@
|
|
212
212
|
```cpp
|
213
213
|
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(jpfont)
|
214
214
|
```
|
215
|
-
|
215
|
+
上記のコードに変更しても、
|
216
216
|
jpfont.cのひらがなフォントを呼び出すことができていないようです。
|
217
217
|
[jpfont.c](https://github.com/KenjiMaehara/lvgl_JPFont/blob/master/src/jpfont.c)
|
218
218
|
|
9
一部修正。
test
CHANGED
File without changes
|
test
CHANGED
@@ -208,7 +208,15 @@
|
|
208
208
|
Serial.println("Setup End");
|
209
209
|
}
|
210
210
|
```
|
211
|
-
このように変更してみたのですが、
|
211
|
+
このように変更してみたのですが、ひらがなのフォントは出てきません。
|
212
|
+
```cpp
|
213
|
+
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(jpfont)
|
214
|
+
```
|
215
|
+
このコードを実行しても、
|
216
|
+
jpfont.cのひらがなフォントを呼び出すことができていないようです。
|
217
|
+
[jpfont.c](https://github.com/KenjiMaehara/lvgl_JPFont/blob/master/src/jpfont.c)
|
218
|
+
|
219
|
+
|
212
220
|
|
213
221
|
実際の実行時のili9488の表示画面です。
|
214
222
|
🔲が表示されてる部分は
|
8
画面の写真を追加。
test
CHANGED
File without changes
|
test
CHANGED
@@ -210,4 +210,18 @@
|
|
210
210
|
```
|
211
211
|
このように変更してみたのですが、やはりひらがなのフォントは出てきません。
|
212
212
|
|
213
|
-
|
213
|
+
実際の実行時のili9488の表示画面です。
|
214
|
+
🔲が表示されてる部分は
|
215
|
+
lv_label_set_text(label,"あいうtえeおsかtきくけこ");
|
216
|
+
この中のt,e,s,t
|
217
|
+
|
218
|
+
この4文字と思われます。
|
219
|
+
|
220
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2024-01-17/5765f48a-27d1-4ca3-b278-a22799dd1bf8.png)
|
221
|
+
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
|
7
URLリンクを修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -178,7 +178,7 @@
|
|
178
178
|
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(jpfont)
|
179
179
|
```
|
180
180
|
|
181
|
-
このように[main.c](https://github.com/KenjiMaehara/lvgl_JPFont/blob/%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5%AD%97%E8%A1%A8%E7%A4%BA%E3%83%86%E3%82%B9%E3%83%88/src/
|
181
|
+
このように[main.c](https://github.com/KenjiMaehara/lvgl_JPFont/blob/%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5%AD%97%E8%A1%A8%E7%A4%BA%E3%83%86%E3%82%B9%E3%83%88/src/main.cpp)のコードを変更して
|
182
182
|
|
183
183
|
```cpp
|
184
184
|
|
6
main.cのファイルのURLを追加。
test
CHANGED
File without changes
|
test
CHANGED
@@ -178,7 +178,7 @@
|
|
178
178
|
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(jpfont)
|
179
179
|
```
|
180
180
|
|
181
|
-
このようにコードを変更して
|
181
|
+
このように[main.c](https://github.com/KenjiMaehara/lvgl_JPFont/blob/%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5%AD%97%E8%A1%A8%E7%A4%BA%E3%83%86%E3%82%B9%E3%83%88/src/jpfont.c)のコードを変更して
|
182
182
|
|
183
183
|
```cpp
|
184
184
|
|
5
コード改造内容を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -167,6 +167,47 @@
|
|
167
167
|
|
168
168
|
###追記 2024/1/17
|
169
169
|
|
170
|
-
|
170
|
+
lvglライブラリのフォルダ内にあるlv_conf.hファイル。
|
171
|
+
|
171
|
-
|
172
|
+
D:\ESP32\lvgl_JPFont\.pio\libdeps\esp32dev\lvgl\lv_conf.h
|
173
|
+
|
172
|
-
|
174
|
+
```cpp
|
175
|
+
/*Optionally declare custom fonts here.
|
176
|
+
*You can use these fonts as default font too and they will be available globally.
|
177
|
+
*E.g. #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) LV_FONT_DECLARE(my_font_2)*/
|
178
|
+
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(jpfont)
|
179
|
+
```
|
180
|
+
|
181
|
+
このようにコードを変更して
|
182
|
+
|
183
|
+
```cpp
|
184
|
+
|
185
|
+
void setup() {
|
186
|
+
|
187
|
+
--------------(中略)------------------------------------
|
188
|
+
|
189
|
+
static lv_style_t style1;
|
190
|
+
// LVGLラベルの作成
|
191
|
+
lv_obj_t *label = lv_label_create(lv_scr_act());
|
192
|
+
//lv_label_set_text(label, "Hello, LVGL World02!");
|
193
|
+
lv_style_init(&style1);
|
194
|
+
lv_style_set_text_font(&style1, &jpfont);
|
195
|
+
|
196
|
+
lv_obj_add_style(label, &style1, 0);
|
197
|
+
//lv_style_set_text_color(&style1, lv_color_hex(0xFFFFFF));
|
198
|
+
lv_obj_add_style(label , &style1, 0);
|
199
|
+
lv_label_set_text(label,"あいうtえeおsかtきくけこ");
|
200
|
+
// ラベルのサイズを設定
|
201
|
+
lv_obj_set_size(label, 200, 200);
|
202
|
+
|
203
|
+
// テキストの折り返しを設定
|
204
|
+
lv_label_set_long_mode(label, LV_LABEL_LONG_WRAP);
|
205
|
+
|
206
|
+
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
|
207
|
+
|
208
|
+
Serial.println("Setup End");
|
209
|
+
}
|
210
|
+
```
|
211
|
+
このように変更してみたのですが、やはりひらがなのフォントは出てきません。
|
212
|
+
|
213
|
+
|
4
一部追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -165,5 +165,8 @@
|
|
165
165
|
[jpfont.c](https://github.com/KenjiMaehara/lvgl_JPFont/blob/master/src/jpfont.c)
|
166
166
|
|
167
167
|
|
168
|
-
###
|
168
|
+
###追記 2024/1/17
|
169
|
-
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
|
3
タグの追加を実施。
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
2
さらに追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,11 +10,57 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
### 発生している問題・分からないこと
|
13
|
-
|
13
|
+
main.cppとjphont.cファイルを同じsrcフォルダに入れてビルドはOKでしたが、ili9488の画面では「あいうえおかきくけこ」のひらがなフォントが全く表示されません。
|
14
14
|
|
15
|
-
”あいうえおかきくけこ”
|
16
15
|
|
17
|
-
これ
|
16
|
+
これは日本語フォントの正しい作成方法でしょうか?
|
17
|
+
|
18
|
+
jphont.c ファイルは正しくロードされていますか?
|
19
|
+
|
20
|
+
疑問なのですが、
|
21
|
+
|
22
|
+
```cpp
|
23
|
+
lv_label_set_text(label,"あいうえおかきくけこ");
|
24
|
+
```
|
25
|
+
|
26
|
+
このコードの”あ”で、文字を画面に表示させようとしているわけですが、”あ”はjpfont.cファイルの下の部分をロードできていますでしょうか?
|
27
|
+
読み込んでいるかどうかを確認する方法などありませんでしょうか?
|
28
|
+
|
29
|
+
解決方法よろしくおねがいします。
|
30
|
+
|
31
|
+
```cpp
|
32
|
+
/* U+3042 "あ" */
|
33
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
34
|
+
0x0, 0x0, 0x0, 0x7f, 0xf8, 0x0, 0x0, 0x0,
|
35
|
+
0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0,
|
36
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x1f,
|
37
|
+
0xe0, 0x0, 0x0, 0x60, 0x0, 0x7, 0xc1, 0xff,
|
38
|
+
0xff, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
|
39
|
+
0xf8, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xf8,
|
40
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3e,
|
41
|
+
0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
|
42
|
+
0xf0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
|
43
|
+
0xf, 0x3, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0,
|
44
|
+
0x0, 0xff, 0xc0, 0x3e, 0x1f, 0xc0, 0x0, 0x0,
|
45
|
+
0x0, 0x3f, 0xc0, 0x7, 0xc0, 0x7, 0xe0, 0x0,
|
46
|
+
0x0, 0x1f, 0xfe, 0x0, 0xfc, 0x0, 0x7, 0xe0,
|
47
|
+
0x0, 0xf, 0xc1, 0xf0, 0x1f, 0x80, 0x0, 0xf,
|
48
|
+
0xc0, 0x3, 0xf0, 0xf, 0x83, 0xf0, 0x0, 0x0,
|
49
|
+
0x7f, 0x0, 0x7c, 0x0, 0x7e, 0x7c, 0x0, 0x0,
|
50
|
+
0x1, 0xf8, 0xf, 0x80, 0x1, 0xff, 0x80, 0x0,
|
51
|
+
0x0, 0x1f, 0xc0, 0xf8, 0x0, 0xf, 0xf0, 0x0,
|
52
|
+
0x0, 0x0, 0xfe, 0xf, 0x80, 0x3, 0xff, 0x80,
|
53
|
+
0x0, 0x0, 0x1f, 0xe0, 0xfc, 0x3, 0xff, 0xfe,
|
54
|
+
0x0, 0x0, 0x3, 0xfe, 0x7, 0xff, 0xff, 0x81,
|
55
|
+
0xc0, 0x0, 0x0, 0xff, 0x80, 0xf, 0xff, 0x0,
|
56
|
+
0x0, 0x0, 0x0, 0xff, 0xe0, 0x0, 0x0, 0x0,
|
57
|
+
0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0x0,
|
58
|
+
0x0, 0x1, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0,
|
59
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
60
|
+
|
61
|
+
```
|
62
|
+
|
63
|
+
|
18
64
|
|
19
65
|
### エラーメッセージ
|
20
66
|
```error
|
1
ソースコードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -22,9 +22,76 @@
|
|
22
22
|
```
|
23
23
|
|
24
24
|
### 該当のソースコード
|
25
|
+
[こちら](https://github.com/KenjiMaehara/lvgl_JPFont/blob/master/src/main.cpp)が現在のソースコードです。
|
26
|
+
```cpp
|
27
|
+
#include <Arduino.h>
|
28
|
+
#include <lvgl.h>
|
29
|
+
#include <TFT_eSPI.h> // ILI9488ドライバを含むライブラリ
|
25
30
|
|
31
|
+
|
32
|
+
TFT_eSPI tft = TFT_eSPI(); // TFTのインスタンスを作成
|
33
|
+
|
34
|
+
// ディスプレイフラッシュ関数
|
35
|
+
void my_disp_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p) {
|
36
|
+
tft.startWrite();
|
37
|
+
tft.setAddrWindow(area->x1, area->y1, area->x2 - area->x1 + 1, area->y2 - area->y1 + 1);
|
38
|
+
tft.pushColors((uint16_t *)&color_p->full, (area->x2 - area->x1 + 1) * (area->y2 - area->y1 + 1), true);
|
39
|
+
tft.endWrite();
|
40
|
+
lv_disp_flush_ready(disp);
|
26
|
-
|
41
|
+
}
|
42
|
+
|
43
|
+
static lv_disp_draw_buf_t draw_buf;
|
44
|
+
static lv_color_t buf[320 * 10]; // 仮にディスプレイの垂直解像度を480ピクセルと仮定
|
45
|
+
static lv_disp_drv_t disp_drv;
|
46
|
+
|
47
|
+
LV_FONT_DECLARE(jpfont);
|
48
|
+
|
49
|
+
void setup() {
|
50
|
+
Serial.begin(115200); // シリアル通信の初期化
|
51
|
+
Serial.println("Setup Start");
|
52
|
+
|
53
|
+
lv_init();
|
54
|
+
tft.begin();
|
55
|
+
tft.setRotation(1); // ディスプレイの向きに合わせて調整
|
56
|
+
|
57
|
+
// バッファのサイズを設定(解像度に基づいて)
|
58
|
+
|
59
|
+
|
60
|
+
lv_disp_draw_buf_init(&draw_buf, buf, NULL, 320 * 3);
|
61
|
+
|
62
|
+
lv_disp_drv_init(&disp_drv);
|
63
|
+
disp_drv.hor_res = 480; // ディスプレイの解像度を設定
|
64
|
+
disp_drv.ver_res = 320;
|
65
|
+
disp_drv.flush_cb = my_disp_flush;
|
66
|
+
disp_drv.draw_buf = &draw_buf;
|
67
|
+
lv_disp_drv_register(&disp_drv);
|
68
|
+
|
69
|
+
|
70
|
+
static lv_style_t style1;
|
71
|
+
// LVGLラベルの作成
|
72
|
+
lv_obj_t *label = lv_label_create(lv_scr_act());
|
73
|
+
//lv_label_set_text(label, "Hello, LVGL World02!");
|
74
|
+
lv_style_init(&style1);
|
75
|
+
lv_style_set_text_font(&style1, &jpfont);
|
76
|
+
|
77
|
+
lv_obj_add_style(label, &style1, 0);
|
78
|
+
lv_style_set_text_color(&style1, lv_color_hex(0xFFFFFF));
|
79
|
+
lv_label_set_text(label,"あいうえおかきくけこ");
|
80
|
+
// ラベルのサイズを設定
|
81
|
+
lv_obj_set_size(label, 200, 100);
|
82
|
+
|
83
|
+
// テキストの折り返しを設定
|
84
|
+
lv_label_set_long_mode(label, LV_LABEL_LONG_WRAP);
|
85
|
+
|
86
|
+
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
|
87
|
+
|
88
|
+
Serial.println("Setup End");
|
89
|
+
}
|
90
|
+
|
91
|
+
void loop() {
|
92
|
+
lv_task_handler();
|
27
|
-
|
93
|
+
delay(5);
|
94
|
+
}
|
28
95
|
```
|
29
96
|
|
30
97
|
### 試したこと・調べたこと
|