ILI9431 액정을 LovyanGFX로 사용해보기
"ESP32로 ILI9341 TFT 액정 이동"
htps : // 이 m / 난부 wks / ms / 72503cf93c5f2 에 d0 에에 b
에서 소개한 ILI9341 LCD를 최근 화제의 LovyanGFX 라이브러리에서 움직여 보았습니다.
연결된 보드는 ESP32의 자체 제작 보드입니다.
환경
자작 보드와 ILI9341 액정의 배선은 「ESP32로 ILI9341 TFT 액정을 이동한다」기사와 같습니다.
설치
Arduino 라이브러리 관리자에서 LovyanGFX 라이브러리를 로드합니다.
파일 - 스케치 예제 - 사용자 정의 라이브러리 스케치 예제 - LovyanGFX - HowToUse - 2_spi_setting
다시 작성합니다.
기본적으로 다음 항목을 변경합니다.
변경 전
//: lgfx::Panel_ILI9341 panel;
lgfx::Panel_ILI9342 panel;
...
panel.spi_cs = 14;
panel.spi_dc = 27;
panel.gpio_rst = 33;
panel.gpio_bl = 32;
...
panel.memory_width = 320;
panel.memory_height = 240;
panel.panel_width = 320;
panel.panel_height = 240;
변경 후
lgfx::Panel_ILI9341 panel;
// lgfx::Panel_ILI9342 panel;
...
panel.spi_cs = 5;
panel.spi_dc = 17;
panel.gpio_rst = 16;
panel.gpio_bl = 4;
...
panel.memory_width = 240;
panel.memory_height = 320;
panel.panel_width = 240;
panel.panel_height = 320;
코멘트등을 삭제해 컴팩트하게 해, 데모 화면을 일본어 표시가 되도록(듯이) 고쳐 본 것이 이하의 코드입니다.
panel.memory_width = 240;
panel.memory_height = 320;
panel.panel_width = 240;
panel.panel_height = 320;
#include <LovyanGFX.hpp>
struct LGFX_Config
{
static constexpr spi_host_device_t spi_host = VSPI_HOST;
static constexpr int dma_channel = 1;
static constexpr int spi_sclk = 18;
static constexpr int spi_mosi = 23;
static constexpr int spi_miso = 19;
static constexpr int spi_dlen = 8;
};
static lgfx::LGFX_SPI<LGFX_Config> lcd;
static lgfx::Panel_ILI9341 panel;
void setup(void)
{
panel.freq_write = 20000000;
panel.freq_fill = 27000000;
panel.freq_read = 16000000;
panel.spi_mode = 0;
panel.spi_mode_read = 0;
panel.len_dummy_read_pixel = 8;
panel.spi_read = true;
panel.spi_3wire = false;
panel.spi_cs = 5;
panel.spi_dc = 17;
panel.gpio_rst = 16;
panel.gpio_bl = 4;
panel.pwm_ch_bl = 7;
panel.backlight_level = true;
panel.reverse_invert = false;
panel.rgb_order = false;
panel.memory_width = 240;
panel.memory_height = 320;
panel.panel_width = 240;
panel.panel_height = 320;
panel.offset_x = 0;
panel.offset_y = 0;
panel.rotation = 0;
panel.offset_rotation = 0;
lcd.setPanel(&panel);
lcd.init();
}
uint32_t count = ~0;
void loop(void)
{
for ( int i=0; i<4;i++){
lcd.setRotation(i);
lcd.startWrite();
lcd.fillScreen(random(65535));
lcd.setCursor(0,0);
lcd.setFont(&lgfxJapanGothicP_8); lcd.setTextColor(random(65535),random(65535)); lcd.print("縦 8日本語\n");
lcd.setFont(&lgfxJapanGothicP_12);lcd.setTextColor(random(65535),random(65535)); lcd.print("縦12日本語\n");
lcd.setFont(&lgfxJapanGothicP_16); lcd.setTextColor(random(65535),random(65535));lcd.print("縦16日本語\n");
// lcd.setFont(&lgfxJapanGothicP_20); lcd.setTextColor(random(65535),random(65535));lcd.print("縦20日本語\n");
// lcd.setFont(&lgfxJapanGothicP_24); lcd.setTextColor(random(65535),random(65535));lcd.print("縦24日本語\n");
// lcd.setFont(&lgfxJapanGothicP_28); lcd.setTextColor(random(65535),random(65535));lcd.print("縦28日本語\n");
// lcd.setFont(&lgfxJapanGothicP_32); lcd.setTextColor(random(65535),random(65535));lcd.print("縦32日本語\n");
// lcd.setFont(&lgfxJapanGothicP_36); lcd.setTextColor(random(65535),random(65535));lcd.print("縦36日本語\n");
lcd.setFont(&lgfxJapanGothicP_40);lcd.setTextColor(random(65535),random(65535)); lcd.print("縦40日本語\n");
lcd.endWrite();
delay(3000);
}
}
일본어 관계의 코드는 이하를 참고로 했습니다.
「ovyanGFX 입문 그 3 일본어 폰트 그리기계 | Lang-ship」
htps : /// g-p. 이 m / b ぉ g /
폰트 사이즈 9종류 모두 나오려고 하면, 표준 설정에서는 메모리가 부족해졌으므로 적당하게 코멘트 아웃 해 넣었습니다.
Tips
//: lgfx::Panel_ILI9341 panel;
lgfx::Panel_ILI9342 panel;
...
panel.spi_cs = 14;
panel.spi_dc = 27;
panel.gpio_rst = 33;
panel.gpio_bl = 32;
...
panel.memory_width = 320;
panel.memory_height = 240;
panel.panel_width = 320;
panel.panel_height = 240;
lgfx::Panel_ILI9341 panel;
// lgfx::Panel_ILI9342 panel;
...
panel.spi_cs = 5;
panel.spi_dc = 17;
panel.gpio_rst = 16;
panel.gpio_bl = 4;
...
panel.memory_width = 240;
panel.memory_height = 320;
panel.panel_width = 240;
panel.panel_height = 320;
panel.memory_width = 240;
panel.memory_height = 320;
panel.panel_width = 240;
panel.panel_height = 320;
#include <LovyanGFX.hpp>
struct LGFX_Config
{
static constexpr spi_host_device_t spi_host = VSPI_HOST;
static constexpr int dma_channel = 1;
static constexpr int spi_sclk = 18;
static constexpr int spi_mosi = 23;
static constexpr int spi_miso = 19;
static constexpr int spi_dlen = 8;
};
static lgfx::LGFX_SPI<LGFX_Config> lcd;
static lgfx::Panel_ILI9341 panel;
void setup(void)
{
panel.freq_write = 20000000;
panel.freq_fill = 27000000;
panel.freq_read = 16000000;
panel.spi_mode = 0;
panel.spi_mode_read = 0;
panel.len_dummy_read_pixel = 8;
panel.spi_read = true;
panel.spi_3wire = false;
panel.spi_cs = 5;
panel.spi_dc = 17;
panel.gpio_rst = 16;
panel.gpio_bl = 4;
panel.pwm_ch_bl = 7;
panel.backlight_level = true;
panel.reverse_invert = false;
panel.rgb_order = false;
panel.memory_width = 240;
panel.memory_height = 320;
panel.panel_width = 240;
panel.panel_height = 320;
panel.offset_x = 0;
panel.offset_y = 0;
panel.rotation = 0;
panel.offset_rotation = 0;
lcd.setPanel(&panel);
lcd.init();
}
uint32_t count = ~0;
void loop(void)
{
for ( int i=0; i<4;i++){
lcd.setRotation(i);
lcd.startWrite();
lcd.fillScreen(random(65535));
lcd.setCursor(0,0);
lcd.setFont(&lgfxJapanGothicP_8); lcd.setTextColor(random(65535),random(65535)); lcd.print("縦 8日本語\n");
lcd.setFont(&lgfxJapanGothicP_12);lcd.setTextColor(random(65535),random(65535)); lcd.print("縦12日本語\n");
lcd.setFont(&lgfxJapanGothicP_16); lcd.setTextColor(random(65535),random(65535));lcd.print("縦16日本語\n");
// lcd.setFont(&lgfxJapanGothicP_20); lcd.setTextColor(random(65535),random(65535));lcd.print("縦20日本語\n");
// lcd.setFont(&lgfxJapanGothicP_24); lcd.setTextColor(random(65535),random(65535));lcd.print("縦24日本語\n");
// lcd.setFont(&lgfxJapanGothicP_28); lcd.setTextColor(random(65535),random(65535));lcd.print("縦28日本語\n");
// lcd.setFont(&lgfxJapanGothicP_32); lcd.setTextColor(random(65535),random(65535));lcd.print("縦32日本語\n");
// lcd.setFont(&lgfxJapanGothicP_36); lcd.setTextColor(random(65535),random(65535));lcd.print("縦36日本語\n");
lcd.setFont(&lgfxJapanGothicP_40);lcd.setTextColor(random(65535),random(65535)); lcd.print("縦40日本語\n");
lcd.endWrite();
delay(3000);
}
}
Reference
이 문제에 관하여(ILI9431 액정을 LovyanGFX로 사용해보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nanbuwks/items/5db51632ff0db894a062텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)